Linux 用户及权限详解
用户 , 组 ,权限
安全上下文(secure context);
权限:
r,w,x
文件:
r : 可读,可以使用类似cat 等命令查看文件内容。
w : 可写,可以编辑或删除此文件;
x : 可执行,eXcutable, 可以命令提示符下当做命令提交给内核运行;
目录:
r : 可以对此目录执行ls 以列出内部所有文件;
w : 可以在此目录中创建文件;
x : 可以使用cd 切换进此目录,也可以使用ls -l 查看内部文件的详细信息;
rwx:
r--: 只读
r-x: 读和执行
---: 无权限
0 000 --- 无权限
1 001 --x 执行
2 010 -w- 写
3 011 -wx 写和执行
4 100 r-- 只读
5 101 r-x 读和执行
6 110 rw- 读写
7 111 rwx 读写执行
权限的数字写法
rw-r----- : 640
rw-rw---- : 660
用户: UID , etc/passwd
组:GID, etc/group
影子口令 :
用户 : /etc/shadow
组: /etc/gshadow
用户类别:
管理员: 0
普通用户: 1-65535
系统用户:1-499
一般用户:500-60000
用户组类别:
管理员组:
普通组:
系统组:
一般组:
用户组类别:
私有组: 创建用户时,如果没有为其制定所属的组,系统会自动为其创建一个与用户名同名的组
基本组: 用户的默认组
附加组,额外组 : 默认组以外的其他组。
cat /etc/passwd 文件属性解析 :为分隔符号
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
1 account: 用登录名
2 password : 密码
3 UID:用户ID
4 GID:基本组ID
5 comment: 注释
6 HOME DIR : 家目录
7 SHELL : 用户的默认shell
etc/shadow
account `: 登录名
encrypted password : 加密的密码 MD5
创建时间
加密方法:
对称加密: 加密和解密都用同一个密码。
公钥加密: 每个密码都成对出现,一个为私钥(secret key) 一个为公钥(public key)
单向加密: 散列加密: 提取数据特征码,常用于数据完整性校验
1 雪崩效应
2 定长输出
MD5 : message digest 128位定长输出
SHA1: Secure Hash Algorithm 160 位定长输出
useradd username 添加账户
groupadd groupname 添加用户组
用户管理:
useradd ,userdel,usermod ,passwd,chsh, chfn,finger,id,change
useradd [options] USERNAME
-u : UID >=500
-g : GID(基本组)
-G : GID ... (附加组)
-c :“comment” 注释信息
-d : /路径 指定家目录
-s : /bin/shell 指定shell 路径
-m -k
-M:
-r:添加系统用户
/etc/shells : 指定了当前系统所有安全可用的shell
userdel:
userdel [option] USERNAME 删除用户
-r : 同时删除用户的家目录
id : 查看用户的账号属性信息
-u:
-g:
-G:
-n:
finger : 查看用户账号信息
finger USERNAME
修改用户账号属性:
usermod
-u : UID
-g : GID
-G -a: GID(附加组,不使用-a 会覆盖之前的附加组)
-c:注释
-d -m: -m 移动旧家目录文件至新家目录
-s:
-l:
-L:锁定账号
-U: 解锁账号
chsh(change shell) : 修改用户的默认shell
chfn :修改注释信息
密码管理:
passwd [USERNAME]
--stdin 从标准输入(可以是管道)中读取新密码。
-l:锁定
-u:解锁
-d: 删除用户密码
pwck 检查用户账号完整性
切换用户登录
su (switch user) 用户名
组管理命令:
groupadd,groupdel, groupmod,gpasswd
创建组:
groupadd :
-g:GID
-r:添加为系统组
groupmod:
-g:GID
-n:GroupName
gpasswd : 为组设定密码
newgrp groupname : 登录到新组, -- > exit
chage : 修改用户密码信息
-d : 最近一次的修改时间
-E :过期时间
-I :非活动时间
-m :最短使用时间
-M :最长使用期限
-W : 警告时间
权限管理:
r:
w:
x:
chown,chgrp,chmod,umask
三类用户:
u : 属主
g : 属组
o : other 其他用户
a :所有用户
chown : 改变文件属主(管理员权限)
chown USERNAME file1,file12,....
-R :修改目录及其内部文件的属主(递归修改)
--reference=/path/to/somefile file1, ... 参考某个文件权限修改file1
chown USERNAME:GORUPNAME file1,...
chown USERNAME.GROUPNAME file,...
chgrp Groupname file,... 改变文件属组
-R :
--reference=/path/to/somefile file1, ... 参考某个文件权限修改file1
chmod:修改文件的权限
修改三类用户的权限:
chomod MODE file,....
修改某类用户或某些类用户权限:
u,g,o,a
chmod 用户类别=MODE file,...
修改某类的用户某位或某些位权限
u,g,o,a
chmod 用户类别 +|- MODE file,....
chmod u+x g-r o+w
umask : 遮罩码。表示默认创建的权限设定。
创建文件为: 666-umask
创建目录为: 777-umask
注意: 文件一定不能默认有执行权限
bash : 脚本解释器
站在用户角度谈 SHELL 的类型:
1 登录式shell:
正常通过某终端登录
su - username
su -l username
2 非登录式shell :
su username
图形终端下打开的命令窗口
自动执行的shell 脚本
bash 的配置文件:
全局配置:
/etc/profile, /etc/profile.d/*sh, /etc/bashrc
个人配置:/.bash_profile./.bashrc
profile 类的文件:
设定环境变量
运行命令或脚本
bashrc类的文件:
设定本地变量
定义命令别名
登录式shell 如何读取配置文件?
/etc/profile --->/etc/profile.d/*.sh ---> ~/.bash_profile ---> ~/.bashrc --->/etc/bashrc
非登录式shell如何读取配置文件?
~/.bashrc ---> /etc/bashrc ---> /etc/profile.d/*.sh
简单设置个root 账号 登录欢迎提示:
root账号下编辑个人配置文件 .bash_profile
nano ~/.bash_profile
最后一行输入:
echo "Hello Administtactor ,Welocme to Login ,It's `date`."
退出账号 重新登录加载配置文件 查看登录后的提示。
可在其中加载脚本,用于初始化运行