Linux用户和用户组以及相关权限

Linux用户和用户组以及相关权限

注意:以下示例使用MacOS说明

示例一,该目录下只有一个软链接,显示该目录下的所有文件和目录的详细信息

➜  nginx ls -al
total 8
drwxr-xr-x   3 xinxingegeya  staff  102  6 22 17:21 .
drwxr-xr-x  18 xinxingegeya  staff  612  6 21 18:20 ..
lrwxr-xr-x   1 xinxingegeya  staff   31  6 22 17:20 nginx.conf -> /usr/local/etc/nginx/nginx.conf

示例二,显示指定文件的详细信息,

➜  /etc ls -al hosts
-rw-r--r--  1 root  wheel  289  6 22 11:42 hosts

这里的ls -al和linux中显示的有所不同,不过差别不大,以上的各项分别代表的含义是:

the access permissions------(-rw-r--r--)
the number of links to this file------(1)------(文件的硬链接数量)
the ownership (user and unix group which own it)------(root  wheel)------(文件的所有者和所属的用户组)
size in bytes------(289)------(文件的大小)
date of the last modification------(6 22 11:42)------(Month DAY_OF_MONTH TIME)------(文件的最后修改日期)
the name of the directory entry------(hosts)------(目录或文件的名字)

目录和文件权限

如下所示,

➜  /etc ls -al hosts
-rw-r--r--  1 root  wheel  289  6 22 11:42 hosts

当使用al选项会列出文件和目录的详细信息,最前面的第2~10个字符是用来表示权限。第一个字符一般用来区分文件和目录:

d:表示是一个目录。
-:表示这是一个普通的文件。
l:表示这是一个符号链接文件,实际上它指向另一个文件。
b,c:分别表示区块设备和其他的外围设备,是特殊类型的文件。
s,p:这些文件关系到系统的数据结构和管道,通常很少见到。

第2~10个字符又分为三部分,

rw-r--r--
rw- 拥有者(user)权限
r-- 用户组(group)权限
r-- 其他用户(other)权限

MacOS常见的用户和用户组:

➜  ~ dscacheutil -q group
name: admin
password: *
gid: 80
users: root xinxingegeya

name: staff
password: *
gid: 20
users: root xinxingegeya

name: wheel
password: *
gid: 0
users: root

修改文件和目录的用户组-chgrp(change group)

修改文件和目录的用户组-chgrp(change group) 示例如下,

➜  helloworld ls -al
total 8
drwxr-xr-x   4 xinxingegeya  staff   136  6 22 14:21 .
drwxr-xr-x+ 89 xinxingegeya  staff  3026  6 22 14:21 ..
drwxr-xr-x   2 xinxingegeya  staff    68  6 22 14:21 dir1
-rw-r--r--   1 xinxingegeya  staff     6  6 22 14:20 hellworld.txt
➜  helloworld chgrp -R admin dir1
➜  helloworld ls -al
total 8
drwxr-xr-x   4 xinxingegeya  staff   136  6 22 14:21 .
drwxr-xr-x+ 89 xinxingegeya  staff  3026  6 22 14:22 ..
drwxr-xr-x   2 xinxingegeya  admin    68  6 22 14:21 dir1
-rw-r--r--   1 xinxingegeya  staff     6  6 22 14:20 hellworld.txt
➜  helloworld

将目录dir1的用户组修改为admin,命令chgrp(change group),R参数表示递归操作该目录下的所有文件和目录,

chgrp -R admin dir1

修改文件和目录的拥有者和用户组-chown(change owner)

修改文件和目录的拥有者和用户组-chown(change owner) 示例如下,

➜  helloworld ll
total 8
drwxr-xr-x  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt
➜  helloworld chown xinxingegeya:staff dir1
➜  helloworld ll
total 8
drwxr-xr-x  2 xinxingegeya  staff    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt
chown xinxingegeya:staff dir1

修改 dir1 目录的拥有者为xinxingegeya,其所在的用户组为staff。

当拥有者不存在时,如下

➜  helloworld chown xiaoming:staff dir1
chown: xiaoming: illegal user name

也可以直接指定用户组,比如,

➜  helloworld chown :admin dir1
➜  helloworld ll
total 8
drwxr-xr-x  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt

修改文件和目录的权限-chmod(change mode)

修改文件和目录的权限-chmod(change mode) 示例如下,

➜  helloworld ll
total 8
drwxr-xr-x  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt
➜  helloworld chmod g+w dir1
➜  helloworld ll
total 8
drwxrwxr-x  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt

给用户组增加w权限,

chmod g+w dir1
使用符号模式改变文件和目录的权限

使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和permission(权限),每个项目的设置可以用逗号隔开。 命令chmod将修改who指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在who的位置来说明,示例如下,

➜  helloworld ll
total 8
drwxrwxr-x   2 xinxingegeya  admin    68  6 22 14:21 dir1
-rw-r--r--   1 xinxingegeya  wheel    10  6 22 14:28 hellworld.txt
➜  helloworld chmod u-x,g-x,o-x dir1
➜  helloworld ll
total 8
drw-rw-r--  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt

以下两个命令等价,

chmod u-x,g-x,o-x dir1
chmod ugo-x dir1
使用八进制模式修改文件和目录权限

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。

chmod的八进制语法的数字说明:

r 4

w 2

x 1

- 0

所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如rwx ,也就是4+2+1 ,应该是7。

用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如rw- ,也就是4+2+0 ,应该是6。

其它用户的权限数字表达:其它用户权限位的数字相加的总和。如r-x ,也就是4+0+1 ,应该是5。

示例如下,

➜  helloworld ll
total 8
drw-rw-r--  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt
➜  helloworld chmod 644 dir1
➜  helloworld ll
total 8
drw-r--r--  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt

======END======

转载于:https://my.oschina.net/xinxingegeya/blog/699280

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值