前言
上一节我们讲了Linux基础文件操作,今天我们接着来讲用户权限管理。
用户管理
为什么我们需要权限管理呢?服务器需要多个运维人员维护,不同人员有不同权限。毕竟鸡蛋不能放在一个篮子里,有人离职我们肯定要把权限收回来,普通员工也不可能有所有权限,肯定要有所区分。
1.超级管理员
系统默认有一个超级管理员账户 root,拥有所有权限
2.用户添加
useradd 用户名 添加用户 普通用户可以使用sudo useradd 用户名添加用户 输入密码 -m 在用户下添加 home目录
-g 组名 指定用户所在组
passwd 用户名 再输入密码为新增用户设置密码,未设置密码账户无法使用
可以使用 cat /etc/passwd 查看系统有哪些用户及密码
用户组,每个用户会有一个初始组,创建用户时会默认添加一个同名初始组
3.用户切换
su 用户名 切换用户 su - 用户名 切换用户并直接到home目录
exit 退出当前用户
4.删除用户
userdel 用户名 删除用户 -r 删除 home目录 -f 强制删除
5.用户组操作
groupadd 组名 添加用户组
cat /etc/group 查看用户组是否添加成功
groupmod - n 新组名 旧组名
groupdel 组名 删除用户组
cat /etc/shadow 查看用户影子文件 可查看用户密码(加密)
cat /etc/gshadow 查看用户组影子文件 用户组密码(加密)
usermod -g 组名 用户名 修改用户初始组名
usermode -g test11 user1
id user1 // uid=1002(user1) gid=1003(test11) groups=1003(test11)
usermod =G 组名(多个使用逗号隔开) 用户名 修改用户附加组
usermod -G test2,root user1
id user1 // uid=1002(user1) gid=1003(test11) groups=1003(test11),0(root),1004(test2)
6.查看用户
who 查看初始登录用户
whoami 查看当前操作用户
id 用户名 查看用户所在组
id user1 // uid=1002(user1) gid=1003(test11) groups=1003(test11),0(root),1004
7.权限控制
使用ll查看当前目录下文件列表,第一行10个字符串表示文件权限 第一字符为d
表示文件夹 为-
表示文件,后面9个字符串三个为一组 分别表示用户u
、用户组g
、其他用户o
的权限,每一组分别表示r
读 w
写 x
执行(删除和创建)
-rw------- // 表示只有用户有读写权限,没有删除权限 文件
drwx------ // 表示用户有读写执行权限 文件夹
只有文件所有者和超级管理员才有权限修改权限,使用chmod u+x,g+r 文件(夹)
修改权限,其中u
表示用户(user),=
表示直接赋值权限 +
表示添加,-
表示删除,g
表示用户组(group),r w x
分别表示读写执行权限
ll // -rw-r--r-- 1 root root 4 Oct 18 17:50 tes.txt
chmod u-w,g-r tes.txt // 表示对用户添删除写,用户组删除执行 tes.txt文件权限
ll // -r-----r-- 1 root root 4 Oct 18 17:50 tes.txt
除此之外,还可以使用数字表示权限 r=4 w=2 x=1
444表示所有人拥有读权限 777表示所有人有所有权限
ll // -r-----r-- 1 root root
chmod 444 tes.txt
ll // -r--r--r-- 1 root root 4 Oct 18 17:50 tes.txt
chmod 777 tes.txt
ll // -rwxrwxrwx 1 root root 4 Oct 18 17:50 tes.txt
chmod -R 777 文件名 修改文件包括文件的所有子文件权限
ll // 在t1文件下执行
-rw-r--r-- 2 root root 7414 Oct 18 16:53 123_link
-rw-r--r-- 2 root root 7414 Oct 18 16:53 123.txt
-rw-r--r-- 1 root root 5329 Oct 18 16:54 456.txt
chmod -R 777 t1 //返回上级目录执行
-rwxrwxrwx 2 root root 7414 Oct 18 16:53 123_link
-rwxrwxrwx 2 root root 7414 Oct 18 16:53 123.txt
-rwxrwxrwx 1 root root 5329 Oct 18 16:54 456.txt
chown(change owner)
修改所属者权限 chgrp(change group)
修改所属组权限
chown user1 123.txt // 修改123.txt的所属者为user1
执行前:
-rwxrwxrwx 2 root root 7414 Oct 18 16:53 123.txt
执行后:
-rwxrwxrwx 2 user1 root 7414 Oct 18 16:53 123.txt
chgrp test2 123.txt // 修改123.txt的所属组为test2
执行前:
-rwxrwxrwx 2 user1 root 7414 Oct 18 16:53 123.txt
执行后:
-rwxrwxrwx 2 user1 test2 7414 Oct 18 16:53 123.txt