权限管理命令 41~44

Linux系统是多人多用户的操作系统。

字符 含义
r read 读:查看权限;目录:ls;
w write 写:文件:增删改;目录:创建、改名、删除、移动
x execute 执行:文件可以被执行;目录:可以cd
u user 用户 (属主)
g group 组(属组)
o other 其他用户
a all 所有用户
t 粘连权限(特殊权限)给目录的权限,在本目录下不能删除其他人的文件
s 权限提升(特殊权限) x 在执行程序时让其他用户临时拥有所有者或所属组的权限

特殊权限:

  • SUID:rwsrwxrwx 【chomd u+s dilename】

    • 让其他用户使拥有SUID权限命令时,可以使用所有者的权限。

    • passwdd 默认拥有SUID权限。(普通用户修改自己的密码时,要有root权限)

       chmod u+s /bin/passwd 
       ls -l /bin/passwd 
      -rwsr-xr-x. 1 root root 27832 6月  10 2014 /bin/passwd
      #SUID的数字权限为4 
      chmod 4755 /bin/passwd
      ls -l /bin/passwd
      -rwsr-xr-x. 1 root root 27832 6月  10 2014 /bin/passwd
      # s:原来有x执行权限时,才会变成s为生效。否则为S:不生效。
      
  • SGID:所有组的x变成s,其他人以组权限执行命令。

    # SGID权限位
    chmod g+s filename
    chmod 2755 filename
    #SUID+SGID
    chmod 6755 filename
    chmod u+s,g+s filename
    
  • sticjybit:粘滞位【给目录使用】

    #给共享目录设置为粘滞位,作用是只能删除自己的文件,没有修改权限,不能修改、移动别人的文件
    chmod o+t dir
    chmod 1777 dir
    

隐藏权限:

可以限制root权限操作。保护重要文件,保险作用。

lsattr 查看隐藏权限
chattr 修改隐藏权限
A:文件或目录的atime不可被修改。
S:硬盘I/O同步选项,功能类似sync。Linux默认为异步I/O。
a:只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
d:文件不能成为dump程序的备份目标。
i:(强制锁定)设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。

#buff:写入缓存、存放在内存中等待写入的缓存。sync命令可以写入磁盘。
#cache:读出缓存、从磁盘中预先加载的数据,等待被程序运行。


### ACL权限:

* 三类用户:user所有者,group同组人员,other其他人。
* ACL(访问控制列表):单独赋予某个用户对文件的rwx相关的权限。



~~~ini
----------------
#获取文件的acl权限
getfacl 1.txt
----------------
#设置用户acl权限
setfacl -m u:tom:rw- 1.txt
----------------
#删除用户acl权限
setfacl -x u:tom 1.txt
----------------
#删除文件所有acl权限
setfacl -b 1.txt
-----------------
#对目录设置acl权限
setfacl -m d:u:tom:rwx dir
-----------------
~~~


41.chmod:修改文件或目录的权限

权限只对普通用户有效,对root无效。

格式: chmod 权限 [选项] 文件

选项:-R :递归设置,将目录内的文件全部设置成一样的权限
image

#查看权限
ls -l
-rw-r--r--  1 root root   65 7月  10 15:53 1.txt

第一个字符:文件类型:-普通文件,d目录文件,c字符串文件,b块文件,l链接文件
2~10字符:属主 属组 其他用户 (3个一组)

#stat 查看用户权限
stat 1.txt
权限 数字 含义
--- 0 没权限
--x 1 执行权限
-w- 2 写权限
-wx 3 写执行权限
r-- 4 读权限
r-x 5 读执行权限
rw- 6 读写权限
rwx 7 读写执行权限
t 防止其他用户删除非自己的文件

用法:chmod [选项] 权限 文件

  • 修改文件或目录的权限,适用于设置读取、写入、执行权限。

有数字表示法

  • 字母修改法

  • u(user) g(group) o(other) a(all)

  • chmod +x a.sh

  • chmod u=rwx,g=rx,o=r a.sh

    字母表示法

image

  • 数字修改法

  • chmod 666 a.sh

  • 0000 ~ 7777

  • 特殊权限:1--t 2--sgid 3--同时加t和sgit 4--suid

常用操作

#常用权限组合:
777:共享目录
666:共享文件
755:允许其他用户读的目录
644:允许其他用户读的文件
700:自己的私有目录
600:自己的私有文件
711:可执行文件
#默认权限:
umask #修改默认权限
0022
目录=0777-0022=0755
文件=0666-0022=0644
--------------------
# 1. 将文件设为所有人可读(r),所有者可写(w),所有人可执行(x)
chmod 755 script.sh

# 2. 只允许所有者读写,其他人无权限
chmod 600 secret.txt

# 3. 为目录添加执行权限(递归应用到子目录和文件)
chmod -R +x /path/to/directory

# 4. 使用符号模式添加权限:为文件添加所有用户的执行权限
chmod +x script.sh

# 5. 移除权限:移除文件的写权限
chmod -w readonly.txt

# 6. 为用户组添加写权限
chmod g+w shared_file.txt

# 7. 设置文件的详细权限:为不同用户分配精确权限
chmod u=rwx,g=rx,o= script.sh

# 7说明:
# u=rwx:文件所有者 (u) 有读 (r)、写 (w)、执行 (x) 权限。
# g=rx:文件所在的用户组 (g) 有读 (r)、执行 (x) 权限,没有写权限。
# o=:其他用户 (o) 无任何权限。
# 适用场景:
# 1. 让文件所有者可以完全操作文件。
# 2. 组用户只能查看和运行文件。
# 3. 防止其他用户访问文件内容。

小总结:

  • 数字模式: 快速设置权限,比如 chmod 755
  • 符号模式: 灵活添加或移除权限,比如 chmod +x
  • 递归操作:-R 修改目录及其子目录权限。
  • 权限拆解:4,写 2,执行 1,组合成总权限。

chmod 是管理文件权限的必备工具,轻松保护文件安全!

42.chown:修改属主

格式:

  • chown 属主.属组 文件
  • chown 属主.属组 -R 目录 # -R 只能用在修改目录上
# 创建新用户
useradd tom
useradd zhangsan
useradd zj
#给用户设置密码
passwd tom
passwd zhangsan
passwd zj
#切换普通用户
su tom #在当前目录切换到该用户
su -tom #在切换用户时,自动cd到家目录,加载用户配置
#切换root用户
su root
su -root
su -
#root用户 切换到其他用户不需要密码
#root用户 可以修改所有用户的密码
#普通用户只能修改自己的密码
#普通用户切换到其他用户(包括root)都需要密码

#退出当前用户,返回之前的用户或退出登录
exit
#chmod: 修改文件的权限

#chown:修改文件的所有者(属主)
#root才能修改其他用户文件的属主和属组
chown zj -R /home/zj #修改文件的属主
chown zj.zj -R /home/zj #同时修改文件的属主和属组

#chgrp:只能修改文件属组

小总结:

  • 改所有者: chown 用户名 文件名
  • 改组:用户名:组名 组合方式。
  • 改目录及子文件:-R 递归修改。

chown,文件权限管理更灵活!

#可查看已经注册的用户
cat /etc/passwd

43.chgrp:修改文件所属组

组(group):默认组、附加组。可以把多个用户添加到同一个小组当中,主要用于批量管理权限。

用法:chgrp [选项] 组名 文件名

  • chgrp专注于修改文件或目录的所属组,不影响文件的所有者。

常用操作

# 1. 修改文件的所属组为 group1
chgrp group1 file.txt

# 2. 递归修改目录及其所有文件的所属组
chgrp -R group1 /path/to/directory

# 适用场景:
# 1. 改变文件的组归属,例如分配给新团队或用户组。
# 2. 与 chown 搭配使用,灵活调整文件权限。

小总结

  • 改组:用 chgrp 组名 文件名
  • 改目录及子文件组:加 -R 递归修改。

44.sudo:提权,让普通用户临时使用root权限执行命令

#使用root身份修改/etc/sudoers文件,将普通用户添加到该文件并进行设置。
vim /etc/suders
在文件的101行
zj   ALL=(ALL)   ALL

#切换用户
su -zj

#使用sudo执行命令
sudo reboot
#普通用户直接修改root密码
sudo passwd

posted @ 2025-07-12 10:31  落无一  阅读(8)  评论(0)    收藏  举报