C语言学习(二)Linux下的用户和权限

时间:2024-04-05 11:32:30

    Linux是多用户的操作系统,多个用户可以同时登陆进行操作。不同用户有不同的权限。root用户拥有最大的权限,其他用户的权限则有相应的限制。     Linux系统上还有用户组的概念,一个组可以包含多个用户,一个用户也可以同时加入多个组。组内用户除了自身的权限外,还拥有用户组成员的共同权限。通常每建立一个新的用户,也同时建立一个与用户同名的组,新用户包含在这个组内。

    Linux文件系统中的每个文件都有权属标志,系统根据这些标志来控制用户对这个文件的访问。     首先,每个文件都记录了它所属的用户和所属的组;其次,每个文件都有三组权限权限标志,分别针对所属用户、所属组和其他用户,每组权限标志又包括读、写、执行三种权限。如果用户对一个文件有读权限,那么他就可以查看这个文件的内容;如果有写权限,就可以修改文件的内容;如果有执行权限,就可以把这个文件作为可执行程序来运行。对于一个目录来说,同样有这三种权限。如果用户对一个目录有读权限,那么他就可以查看目录的内容,也就是目录内包含的文件列表;如果有写权限,就可以修改目录的内容,即创建或删除文件;如果有执行权限,就可以使用此目录作为路径操作目录下的文件,否则不允许操作,并且不能将此目录作为当前目录。

文件的权属标志可以用ls -l来查看

C语言学习(二)Linux下的用户和权限

chmod命令

chmod命令用来更改文件或目录的访问权限。

该命令有两种使用方式:字母设定方式和数字设定方式

1.字母设定方式的一般格式为: chmod [who] [操作符] [mode] 文件名 选项who表示设置对象,可以为下面几个字母的组合,如表1所示。可选的操作符如表2所示。 选项mode表示访问权限,可以为几个字母的组合,如表3所示。

                                                                 表1:设置对象

字符

说明

u

表示文件或目录的属主

g

表示文件或目录的属组用户,即与属主拥有相同GID的用户

o

表示其他用户

a

表示所有用户,这是系统的默认值

                                                                 表2:操作符

操作符

说明

+

增加某项权限

-

取消某项权限

=

设置指定权限,并取消其他所有权限

 

                                                                     表3访问权限

字符

说明

r

可读

w

可写

x

可执行

X

只有目标文件对用户是可执行的,或目标文件为目录时才追加x属性

s

在文件执行时将进程的属主或组ID设为文件的属主

u

与文件属主拥有同样的权限

g

与文件属组用户拥有同样的权限

o

与其他用户拥有同样的权限

 

2.数字设定方式的一般格式为: chmod [mode] 文件名 数字属性的格式为3个从0到7的八进制数,其顺序是(u)(g)(o),具体含义如表所示。

常用数字

数字

含义

0

表示没有权限

1

表示可执行权限

2

表示可写权限

4

表示可读权限

 

权限表
读r 写w 执行x 对应数字
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

 

例:chmod 012 test.c

test.c文件用户具有的权限为0,      000,即不可读,不可写,不可执行

test.c文件用户组具有的权限为1,     001,即不可读,不可写,可执行

test.c文件其他用户具有的权限为2,  010,即不可读,可写,不可执行