Linux系统权限详解
目录
一·权限解释
在Linux系统中,文件和目录的访问权限由三个部分组成:所有者、所属组和其他人。每个部分都有自己的权限设置,包括读取、写入和执行权限。以下是Linux系统权限的详细介绍:
1. 所有者权限:
文件或目录的所有者可以读取、写入和执行该文件或目录。如果文件或目录的所有者是当前用户,那么用户可以使用chmod命令更改该文件或目录的权限。
2. 所属组权限:
文件或目录的所属组成员可以读取、写入和执行该文件或目录。如果当前用户属于该文件或目录的所属组,那么用户可以使用chmod命令更改该文件或目录的权限。
3. 其他人权限:
文件或目录的其他人可以读取、写入和执行该文件或目录。如果当前用户既不是该文件或目录的所有者,也不属于该文件或目录的所属组,那么用户可以使用chmod命令更改该文件或目录的权限。
在Linux系统中,可以使用chmod命令更改文件或目录的权限。chmod命令的语法如下:
chmod [who] [operator] [permission] file
其中,who表示要更改的权限对象,operator表示要执行的操作,permission表示要设置的权限,file表示要更改权限的文件或目录。例如,要将文件file.txt的所有者权限设置为读取、写入和执行,可以使用以下命令:
chmod u+rwx file.txt
这将为文件file.txt的所有者添加读取、写入和执行权限。
二·用户用户组解释
cat /etc/group 查看用户组及权限内容
cat /etc/passwd 查看用户及权限内容
3·解释权限含义
以 " : " 为分隔符,每一列代表的含义
①·用户名
②·密码
③·用户标识号-(uid)是一个整数,系统内部用来标识用户,通常用户标识号的取值范围是0-65535,0=root(超级用户)
④·gid
⑤·描述信息
⑥·家目录
⑦·是用户登录到界面的第一个命令,开启一个shell,登录shell
解释:uid= 系统用来识别账户的
gid= 系统用来识别组的
4·权限命令解释
useradd 用户名 -u 678 -指定新用户的uid为678
useradd 用户名 -s /sbin/nologin 修改shell 创建的用户不能登录
useradd 用户名 -G 组1.组2 指定到两个附加组
useradd 用户名 -g 1006 用户名 创建新用户并指定新用户的主组为1006
userdel -r 用户名 删除用户
————————————————
usermod -l 新名字 旧名字
usermod 用户名 -g 新gid 修改用户的gid
usermod -u 新uid 用户 修改用户的uid
usermod -s /sbin/nologin 用户名 修改shell 用户不能登录
————————————————
gpasswd -a 用户名 组名 把用户添加到组
gpasswd -M 用户1.用户2 组名 同时添加多个用户到组,覆盖之前组员
gpasswd -d 用户 组名 从组中删除用户
groupadd 新组名 -g 2000 创建新的用户组,并指定gid值为2000
groupmod -g 54321 组名 修改组的gid为54321
groupmod -n 新名字 旧名字 修改组名
groupdel 组名 删除组
三·基本权限 U G O
1·权限对象
所有者 --u
所属组 -g
其他人 --o
2·基本权限
读 --r =4
写 --w =2
执行 --x =1
设置权限
chown 改变文件或者目录的所有者以及所属组
chmod 为文件或者目录设置访问权限
chown 用户.用户组 文件名 = 修改文件所有者以及所属组
chmod 777 文件 = 用户 用户组 其他人的使用权限
chmod 对象 赋值符 权限类型
u + r
g - w
o = x
a = (所有,全部权限)
chmod/chown -R 递归修改 包括目录里的所有文件
umask 用户查看掩码 root 用户默认掩码0022
3·高级权限
suid --4 提权 只对二进制命令文件生效
sgid --2 组继承 (只对目录生效)
sticky -1 (t权限) (只对目录权限控制)
给单独某个命令提权 chmod u+s /sur/bin/cat 给cat命令提权 让所有用户像root 用户一样使用cat
chmod g+s 路径/目录 设置此目录组继承 该目录设置组继承后 任何用户在目录下创建任何文件所属组都是本目录的组
chmod o+t 路径/目录 设置此目录t权限 该目录设置后任何用户创建文件后只能文件所有者和root有删除权
sudo提权
sudo针对某个用户能以root 权限执行某些命令 注意!!!提权用户在执行命令前 要加上 sudo
vim /etc/sudoers
#92行 root ALL=(ALL) ALL
#93行 普通用户 ALL=(ALL) NOPASSWD:ALL 让普通用户拥有root权限 注意!!!提权用户在执行命令前 要加上 sudo
#93行 普通用户 ALL =(ALL) NOPASSWD:ALL /usr/bin/mkdir /usr/bin/rm /usr/bin/touch 让普通用户拥有设置的这些权限
文件属性 chattr 文件名 查看文件属性
chattr +a 文件名 不允许修改,只允许被追加
+i 文件名 不允许做任何操作
+A 文件名 不能修改对这个文件的最后访问时间