Linux 用户与权限
说明:基于 Centos6.x 系统环境
Linux 用户与权限
一、相关配置文件
- 用户信息文件 /etc/passwd
共7列,用:分割。
第一列: | 第二列: | 第三列: | 第四列: | 第五列: | 第六列: | 第七列 |
---|---|---|---|---|---|---|
用户名 | 密码标记 | 用户ID | 组ID | 用户说明 | 用户家目录 | 可登陆shell,即权限 |
- 影子文件 /etc/shadow
共9列,用:分割。
第一列 | 第二列 | 第三列 | 第四列 | 第五列 | 第六列 | 第七列 | 第八列 | 第九列 |
---|---|---|---|---|---|---|---|---|
用户名 | 加密密码 | 更新密码时间 | 修改密码时间间隔 | 密码有效期 | 密码到期前警告天数 | 密码过期宽限天数 | 密码失效时间 | 保留 |
- 组信息文件/et/group
第一列 | 第二列 | 第三列 | 第四列 |
---|---|---|---|
组名 | 组密码位 | GID | 此组支持的其他用户,附加组是此组的用户 |
初始组:每个用户的初始组只能有一个,一般和用户名相同
附加组:每个用户可以附属于多个附加组,要把用户加入组,都是加入附加组
- 组密码文件/etc/gshadow
如果给用户组设置了组管理员,并给用户设定了组密码,组密码就保存在这个文件中,组管理员就可以利用这个密码管理这个用户组了。
- 用户家目录 /home/user
- 用户家目录的生成模版/etc/skel/,使用场景:给用户设置警告信息、操作手册
- 用户邮箱目录/var/spool/mail,例如/var/spool/mail/lamp文件
二、用户管理命令
1.添加用户
useradd [选项] 用户名
选项(不常用)
-u 550 指定uid
-g 组名 指定初始组,不要手动指定
-G 组名 指定附加组
-c 说明 添加说明
-d 目录 指定家目录
-s shell /bin/bash
2.设置密码
passwd [选项] 用户名
选项
-l 暂时锁定用户,仅root可用
-u 解锁用户,仅root可用
–stdin 可通过管道符输出的数据作为用户密码,主要用于批量添加用户时使用
passwd 直接回车表示修改当前用户密码
用户信息修改
suermod [选项] 用户名 修改已经添加的用户信息,不常用。
3.删除用户
userdel [-r] 用户名
选项
-r 在删除用户的同时删除其家目录
4.切换用户权限
su [选项] 用户名
选项
“-” 使用-表示连带用户的环境变量一起切换
-c 命令 仅执行一次命令不切换用户身份
三、组管理命令
1.新添加用户组
groupadd [选项] 组名
-d GID 指定组GID
2.删除用户组
groupdel [选项] 用户组
3.添加进附加组或从附加组删除
gpasswd [选项] 组名
选项
-a 用户名 把用户加入组
-d 用户组 把用户从组删除
四、用户权限管理
1. sudo 权限
root 把只能超级用户执行的命令赋予普通用户执行
sudo 的操作对象是系统命令
sudo 的使用
1
2
3
4
5
6
7visudo # 实际修改的是/etc/sudoers文件
# 用户名 被管理主机的地址=(可使用的身份)授权命令(绝对路径)
root ALL=(ALL) ALL
# %组名 被管理主机的地址=(可使用的身份)授权命令(绝对路径)
%wheel ALL=(ALL) ALL例子:让普通用户执行shutdown -r now
1
2visudo # 在文件末尾增加下面一行内容
py ALL=(ALL) /sbin/shutdown -r now例子:让普通用户执行passwd命令,
!/usr/bin/passwd root
表示禁止执行的命令1
py ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd"", !/usr/bin/passwd root
2.ALC权限
用户身份不足时使用此权限,很少用到。
3. 文件特殊权限
SetUID
SetGID
Sticky BIT
4. 不可改变位权限
chattr [+-=] [选项] 文件或目录
# + 表示增加权限,- 表示删除权限,=表示赋予权限
选项
- i 等价于insert 插入# 对文件不允许删除、改名、添加、修改;对目录只能修改目录下的数据,不允许建立和删除文件。
- a 等价于append 追加 # 对文件只能对文件中增加数据,不能删除、修改数据;对目录只允许建立和修改文件,不允许删除。