摘要:本笔记主要记述Linux用户/用户组和权限的基础知识

一、root用户与普通用户

su: Switch User 切换用户
格式:su - [用户名]
使用su - root命令输入密码切换到root用户,获得更大权限
-:可选,表示在是否在切换用户后加载环境变量,建议带上

在root用户下,可以使用visudo,在最后一行加入:[用户名] ALL=(ALL) NOPASSWD: ALL,之后这个普通用户就可以在命令前加上sudo,就不用输入密码来获取权限了。

二、用户与用户组

用户组:
创建用户组:groupadd 用户名 例:groupadd test
删除用户组:groupdel 用户名 例:groupdel test
用户:
创建用户:useradd 用户名 [-g -d] -g指定用户的组,不指定默认为同名组。-d指定用户的home路径,不指定默认为/home/用户名。例:useradd test1 -g test -d /home/test2
删除用户:userdel [-r] 用户名 -r删除用户的HOME目录,不使用就只删除用户,保留该用户的HOME目录
查看用户所属组:id 用户名 不指定默认为当前登录的用户
修改用户所属组:usermod -aG 用户组 用户名 将用户加入指定组
查看用户和用户组:
getent命令查看当前系统中有哪些用户/用户组,语法:getent passwd getent group

用户共有7份信息, 分别是:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
用户组包含3份信息
组名称:组认证(显示为x):组ID

三、权限控制

三种权限:r(read) w(write) x(execute)
分别为:读(对于文件夹,表示可以查看,例如ls命令),写(对于文件夹,可以在其中创建,删除,更改),执行(对于文件夹,可以更改工作目录到此文件夹,即cd进入)

权限信息如下:
第一列为文件/文件夹的权限控制信息
第二列为文件/文件夹所属用户
第三列为文件/文件夹所属用户组
ll命令截图
权限细节

四、修改权限控制:chmod,chown

刚才看到使用ll命令查看文件/文件夹的细节信息,分别是:
第一列为文件/文件夹的权限控制信息
第二列为文件/文件夹所属用户
第三列为文件/文件夹所属用户组

chmod可以用来修改第一列的信息,即修改权限细节
chown可以用来修改第二、第三列的信息,即文件/文件夹所属的用户/用户组

chmod格式 :chmod [-R] 权限 文件或文件夹
-R表示对文件夹内全部内容应用相同规则
权限可以使用字符表示,也可以使用数字表示。
对于字符:u=rwx,g=rx,o=x u是user,g是group,o是other;对应的数字是7 5 1
---对应0,即无任何权限
--x对应1,即只有执行权限
-w-对应2,即只有写权限
-wx对应3,即有写和执行权限
r--对应4,即只有读权限
r-x对应5,即有读和执行权限
rw-对应6,即有读和写权限
rwx对应7,即拥有所有权限
例:
chmod 515 hello.txt 等同于chmod u=rx,g=x,o=rx hello.txt
chmod -R 751 test等同于chmod -R u=rwx,g=rx,o=x test

chown格式:chown [-R] [用户][:][用户组] 文件或文件夹
-R效果同chmod
例:
chown root hello.txt
chown :root hello.txt
chown root:pumpkin-db hello.txt
chown -R root test