Linux 用户、组、权限常用命令
常见命令
查看当前⽤户: whoami
查看系统用户信息:cat /etc/passwd
切换用户:su temp01(用户名)
切换用户且跳到主目录:su - 用户名
ps: 切换 root 用户可省略 root,例如 su、su -
进入当前用户目录:cd ~
退出登陆用户:exit(如是图形界面则退出终端,若 ssh 远程登陆则退出远程,若切换后用户则退回到切换前用户)
修改用户密码:sudo passwd temp01
删除用户:userdel abc(⽤户名)
删除用户同时删除主目录:userdel -r abc(⽤户名)
who
who 命令⽤于查看当前所有登录系统的⽤户信息。
选项 | 含义 |
---|---|
- m 或 am I | 只显示运⾏ who 命令的⽤户名、 登录终端和登录时间 |
- q 或–count | 只显示⽤户的登录账号和登录⽤户的数量 |
- u 或–heading | 显示列标题 |
辨别普通用户、root 用户最简单方式,看命令行前 $ 普通用户,# 为 root 用户
添加用户
adduser 或 useradd 命令,adduser 为 useradd 的链接,因此使用格式一致,使用 useradd [参数] 用户名
参数 | 含义 |
---|---|
-d | 指定⽤户登录系统时的主⽬录, 如果不使⽤该参数, 系统⾃动在 /home ⽬录下建⽴与⽤户名同名⽬录为主⽬录 |
-m | ⾃动建⽴⽬录 |
-g | 指定组名称 |
Linux 每个⽤户都要有⼀个主⽬录, 主⽬录就是第⼀次登陆系统, ⽤户的默认当前⽬录(/home/ ⽤户),一般⽤户的主⽬录和⽤户名是相同的;
每⼀个⽤户必须有⼀个主⽬录, 所以⽤ useradd 创建⽤户的时候, ⼀定给⽤户指定⼀个主⽬录,如果不手动指定,系统会自动建立与用户名同名主目录;
如果创建⽤户的时候, 不指定组名, 那么系统会⾃动创建⼀个和⽤户名⼀样的组名。
例如:
useradd -d /home/abc abc -m:创建 abc ⽤户, 如果 /home/abc ⽬录不存在, 就⾃动创建这个⽬录, 同时⽤户属于 abc 组。
useradd -d /home/a a -g test -m:创建用户 a 且归属为 test 组。
用户组
查看组
cat /etc/group | grep xxx
或
groupmod + 三次 tab 键
查看用户所在组
groups 用户名
添加、删除组
新建组账号:sudo groupadd yonghuzu1
删除组账号:sudo groupdel yonghuzu1
修改用户所在组
usermod -g ⽤户组 ⽤户名
普通用户添加 sudo 权限
新加的用户默认是没有 sudo 权限的,需要手动添加
sudo usermod -a -G adm ⽤户名
sudo usermod -a -G sudo ⽤户名
- g 与 - G 区别
-g ⽤来制定这个⽤户默认的⽤户组
-G ⼀般配合 '-a' 来完成向其它组添加
个人觉得区别不是很大,大 G 的组往往显示在 groups user 的第二个位置,例如:
[root@VM-16-5-centos abc]# usermod -g yonghuzu1 abc
[root@VM-16-5-centos abc]# groups abc
abc : yonghuzu1 abc
[root@VM-16-5-centos abc]#
chmod 修改文件权限
字⺟法
chmod u/g/o/a +/-/= rwx ⽂件
[u/g/o/a] | 含义 |
---|---|
u | user 表示该⽂件的所有者 |
g | group 表示与该⽂件的所有者属于同⼀组 (group) 者, 即⽤户组 |
o | other 表示其他以外的⼈ |
a | all 表示这三者皆是 |
[+-=] | 含义 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设定权限 |
rwx | 含义 |
---|---|
r | read 表示可读取, 对于⼀个⽬录, 如果没有 r 权限, 那么就意味着不能通过 ls 查看这个⽬录的内容。 |
w | write 表示可写⼊, 对于⼀个⽬录, 如果没有 w 权限, 那么就意味着不能在 ⽬录下创建新的⽂件。 |
x | excute 表示可执⾏, 对于⼀个⽬录, 如果没有 x 权限, 那么就意味着不能通 过 cd 进⼊这个⽬录。 |
文件列 rwx 解析
例如
-rwxrwxrwx 1 root root 114 Jun 15 16:37 md.sh
-rw------- 1 root root 10785 Jun 15 16:38 nohup.out
drwxr-xr-x 3 root root 4096 Apr 27 02:17 sea
drwxrwxrwx 10 root root 4096 Nov 28 2021 wizdata
①第一部分 rw- 属于文件的所属者,代表所属者可以访问并修改,但不能执行
②第二部分 r–属于文件的所属组,代表这个用户组可以访问,但不能修改和执行
③第三部分 r–属于其他用户,代表其他用户仅可以访问此文件或目录,但不能进行修改和执行操作
④没有权限的用 - 来表示
最前面的 d 或 - 指代含义如下:
- 就是普通的文件,d 表示是目录, c 表示是字符设备(在 linux/unix,所有的设备都是文件),b 是块设备文件, s 是 socket 文件等。我们可以通过首字母判断 ll 列表文件到底属于什么类型。
ll 命令缺失
如果查看文件详细列表命令 ll
缺失可用 ls -l
代替。ls -lh
可以更直白显示大小单位。
数字法
一个文件的权限可以用 -rw-r–r–来表示,也可以用数字 644 来表示。它们之间的转化可以这么表示:r 用数字 4 表示,w 用 2 表示,x 用 1 表示,那么 -rw-r–r–的 rw- 就可以表示为 6,r–就是 4,连起来就是 644。
字⺟ | 说明 |
---|---|
r | 读取权限, 数字代号为 “4” |
w | 写⼊权限, 数字代号为 “2” |
x | 执⾏权限, 数字代号为 “1” |
- | 不具任何权限, 数字代号为 “0” |
使用格式
// 多个设置用逗号隔开,字母数字皆可。
chmod u=rwx,g=rx,o=r filename 等同于: chmod u=7,g=5,o=4 filename 等同:chmod 754 file
chmod u+x 1.txt
chmod 644 2.txt
// 如果想递归所有⽬录加上相同权限, 需要加上参数“ -R ”,建议在目录后增加可读性。递归 test ⽬录下所有⽂件加 777 权限,如:
chmod 777 test/ -R
chown 修改文件所有者
格式:chown 用户名 文件
权限不足需在前面加 sudo
chgrp 修改文件所属组
格式:chgrp 用户名 文件
- 查看组
- 添加、删除组
- 修改用户所在组
- 普通用户添加 sudo 权限
- - g 与 - G 区别
- chmod 修改文件权限
- 字⺟法
- 文件列 rwx 解析
- ll 命令缺失
- 数字法
- 使用格式
- chown 修改文件所有者
- chgrp 修改文件所属组