Linux设置文件和目录的一般权限

本文详细介绍了在Linux系统中如何创建文件和目录并设置权限,包括使用chmod命令的不同模式(如nnn和guoa)以及设置特殊权限(SUID、SGID、Sticky Bit)。此外,还展示了如何使用chown改变文件属主和属组,以及如何通过setfacl管理文件的ACL,包括添加和修改用户权限。
摘要由CSDN通过智能技术生成

目录

一:创建文件,并赋予权限611(两种方式,一种guoa,一种nnn)

二:创建目录,并赋予权限754(两种方式,一种guoa,一种nnn)

三:创建文件,并将文件的属主和属组修改其他用户

四:设置suid,为文件设置suid(两种方式 u+s和nnnn)的方式

五:设置sgid, 为文件设置sgid(两种方式 g+s和nnnn)的方式

六:设置sbit,为目录设置sbit(两种方式 o+t和nnnn)的方式

七:创建文件,查询文件的acl

        1:为文件设置acl 用户为testuser1 权限为 rwx

        2:为文件设置acl的mask: 权限为r-x


1.修改文件或目录的权限—chmod(change mode)命令
命令格式 1:chmod [-选项] [ugoa] [+-=] [rwx] 文件或目录...
命令格式2:chmod [-选项] nnn 文件或目录...
其中:
ugoa——表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u(user)表示文件或目录的属
主(所有者);g(group)表示属组内的用户;o(others)表示其他任何用户;a(all)表示所有用户(即u+g+o)。
+|-|= ——表示设置权限的操作动作,+代表添加某个权限;-代表取消某个权限;=表示只赋予给定的权限,并
取消原有的权限。
rwx——用字符形式表示的所设置的权限,可以是其中字母中的一个或组合。
nnn——用三位八进制数字表示的所设置的权限。
常用的选项有:
-R——递归修改指定目录下所有文件、子目录的权限。
 

一:创建文件,并赋予权限611(两种方式,一种guoa,一种nnn)

        nnn方式:

[root@rhcsa ~]# touch chmod1.txt
[root@rhcsa ~]# chmod 611 chmod1.txt 
[root@rhcsa ~]# ll chmod1.txt 
-rw---x--x. 1 root root 0 Nov 27 20:07 chmod1.txt
[root@rhcsa ~]# 

        guoa方式:

[root@rhcsa ~]# touch chmod.txt
[root@rhcsa ~]# chmod g=x chmod.txt 
[root@rhcsa ~]# chmod o=x chmod.txt 
[root@rhcsa ~]# ll chmod.txt 
-rw---x--x. 1 root root 0 Nov 27 20:08 chmod.txt
[root@rhcsa ~]# 

二:创建目录,并赋予权限754(两种方式,一种guoa,一种nnn)

目录的初始权限为755

        nnn方式:

[root@rhcsa ~]# mkdir chomd1
[root@rhcsa ~]# chmod -R 754 chomd1
[root@rhcsa ~]# ls -ld chomd1
drwxr-xr--. 2 root root 6 Nov 27 20:10 chomd1

        guoa方式:

[root@rhcsa ~]# mkdir chomd
[root@rhcsa ~]# ls -ld chomd
drwxr-xr-x. 2 root root 6 Nov 27 20:15 chomd    //初始权限
[root@rhcsa ~]# chmod o-x chomd
[root@rhcsa ~]# ls -ld chomd
drwxr-xr--. 2 root root 6 Nov 27 20:15 chomd    //修改后的权限

三:创建文件,并将文件的属主和属组修改其他用户

[root@rhcsa ~]# touch chmod2.txt
[root@rhcsa ~]# ll chmod2.txt 
-rw-r--r--. 1 root root 0 Nov 27 20:25 chmod2.txt
[root@rhcsa ~]# chown root:slw chmod2.txt 
[root@rhcsa ~]# ll chmod2.txt 
-rw-r--r--. 1 root slw 0 Nov 27 20:25 chmod2.txt

四:设置suid,为文件设置suid(两种方式 u+s和nnnn)的方式

SUID 权限的含义:
是为了让一般用户在执行某些程序的时候, 在程序的运行期间, 暂时获得该程序拥有者的权限。

        u+s方式:

[root@rhcsa ~]# touch chomd3.txt
[root@rhcsa ~]# ll chomd3.txt 
-rw-r--r--. 1 root root 0 Nov 27 20:27 chomd3.txt
[root@rhcsa ~]# chmod u+s chomd3.txt
[root@rhcsa ~]# ls -l chomd3.txt 
-rwSr--r--. 1 root root 0 Nov 27 20:27 chomd3.txt

        nnnn方式:

[root@rhcsa ~]# touch chmod4.txt
[root@rhcsa ~]# ll chmod4.txt 
-rw-r--r--. 1 root root 0 Nov 27 20:29 chmod4.txt
[root@rhcsa ~]# chmod 4644 chmod4.txt 
[root@rhcsa ~]# ll chmod4.txt 
-rwSr--r--. 1 root root 0 Nov 27 20:29 chmod4.txt

五:设置sgid, 为文件设置sgid(两种方式 g+s和nnnn)的方式

SGID 权限的含义:
SGID 可以用在两个方面:
■ 文件: 如 果 SGID 设置在二进制文件上, 则不论用户是谁,在执行该程序的时候, 它的有效用户组 (effective group)将会变成该程序的用户组所有者 (group id) ( 真 正 的 组,原来的组)
■ 目录, 如 果 SGID 是设置在 A 目录上, 则在 A 目录内所建立的文件或目录的用户组, 将会是此 A目录的用户组。
一 般来说, SGID 多用在特定的多人团队的项目开发上,在系统中用的很少

        g+s方式:

[root@rhcsa ~]# touch chmod5.txt
[root@rhcsa ~]# ll chmod5.txt
-rw-r--r--. 1 root root 0 Nov 27 20:38 chmod5.txt
[root@rhcsa ~]# chmod g+s chmod5.txt
[root@rhcsa ~]# ll chmod5.txt
-rw-r-Sr--. 1 root root 0 Nov 27 20:38 chmod5.txt

        nnnn方式: 

[root@rhcsa ~]# touch chmod6.txt
[root@rhcsa ~]# ll chmod6.txt
-rw-r--r--. 1 root root 0 Nov 27 20:39 chmod6.txt
[root@rhcsa ~]# chmod 2644 chmod6.txt
[root@rhcsa ~]# ll chmod6.txt
-rw-r-Sr--. 1 root root 0 Nov 27 20:40 chmod6.txt

六:设置sbit,为目录设置sbit(两种方式 o+t和nnnn)的方式

Sticky Bit (SBit) 当前只针对目录有效, 对文件没有效果。
其对目录的作用是:
■ 在 具 有 SBIt 的目录下, 用户若在该目录下具有 w 及 x 权限 , 则当用户在该目录下建立文件或目录时, 只有文件拥有者与 root 才有权力删除。
■ 当 student 用户属于 A 目录的 group 成员或属于 other ,且拥有 w 权限时, 可以对该目录内任何人建立的目录或文件进行“ 删除/重命名/移动” 等操作。
■ 不过, 如果将 A 目录加上了 Sticky Bit 权限, 则 student用户只能针对自己建立的文件或目录进行“删除/重命名/移动” 等操作

0——表示不设置特殊权限
1——表示只设置sticky
2——表示只设置GUID权限
3——表示只设置SGID和sticky权限
4——表示只设置SUID权限
5——表示只设置SUID和sticky权限
6——表示只设置SUID和SGID
7——表示同时设置SUID、GUID、sticky3种权限

        o+t方式:

[root@rhcsa ~]# mkdir chmod2
[root@rhcsa ~]# ls -ld chmod2
drwxr-xr-x. 2 root root 6 Nov 27 20:44 chmod2
[root@rhcsa ~]# chmod o+t chmod2
[root@rhcsa ~]# ls -ld chmod2
drwxr-xr-t. 2 root root 6 Nov 27 20:44 chmod2

        nnnn方式: 

[root@rhcsa ~]# mkdir chmod3
[root@rhcsa ~]# ls -ld chmod3
drwxr-xr-x. 2 root root 6 Nov 27 20:45 chmod3
[root@rhcsa ~]# chmod 1755 chmod3
[root@rhcsa ~]# ls -ld chmod3
drwxr-xr-t. 2 root root 6 Nov 27 20:45 chmod3

七:创建文件,查询文件的acl

 -m:设定 ACL 权限。如果是给予用户 ACL 权限,则使用"u:用户名:权限"格式赋予;如果是给予
组 ACL 权限,则使用"g:组名:权限" 格式赋予;
-x:删除指定的 ACL 权限;
-b:删除所有的 ACL 权限;
-d:设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限;
-k:删除默认 ACL 权限;
-R:递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效;
2) 给用户和用户组添加ACL权限
①、给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名
②、给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名

[root@rhcsa ~]# getfacl acl.txt 
# file: acl.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--

        1:为文件设置acl 用户为testuser1 权限为 rwx

[root@rhcsa ~]# useradd testuser1
[root@rhcsa ~]# setfacl -m u:testuser1:rwx acl.txt
[root@rhcsa ~]# getfacl acl.txt 
# file: acl.txt
# owner: root
# group: root
user::rw-
user:testuser1:rwx
group::r--
mask::rwx
other::r--

        2:为文件设置acl的mask: 权限为r-x

[root@rhcsa ~]# setfacl -m m:r-x acl.txt
[root@rhcsa ~]# getfacl acl.txt 
# file: acl.txt
# owner: root
# group: root
user::rw-
user:testuser1:rwx		#effective:r-x
group::r--
mask::r-x
other::r--

[root@rhcsa ~]# 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戲子 鬧京城°ぃ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值