自学笔记,没有历史知识铺垫(省略百度部分)C语言笔记-17-Linux基础-用户与权限
// 查看文件权限
$ ls -l
//文件权限 属主 属组
drwxr-x--- 5 dony15 staff 160 11 1 2021 nacos
-rw-r--r-- 1 dony15 staff 39588967 11 29 09:08 ons.log
文件权限,第一位代表文件类型
-
普通文件
d
文件夹
p
管道文件
s
socket文件
l
软连接文件
b
块设备文件
c
字符串设备文件
文件权限剩下9位,分为三组 rwx
- 第一组 属主(文件拥有者)对文件的权限
u
- 第二组 属组(同组人员)对文件的权限
g
- 第三组 其他人对文件的权限
o
a=u+g+o
所有组$ chmod a+x ons.log $ ls -l -rwxr-xr-x 1 dony15 staff 39588967 11 29 09:08 ons.log $ chmod a-x ons.log $ ls -l -rw-r--r-- 1 dony15 staff 39588967 11 29 09:08 ons.log $ chmod o+rwx ons.log $ ls -l -rw-r--rwx 1 dony15 staff 39588967 11 29 09:08 ons.log
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
数字文件权限
--- --- --- 000 000 000 => 000 rwx rwx rwx 111 111 111 => 777
- 1
- 2
- 3
- 4
access();
是否有指定权限chdir()
改变路径 等同cd
指令getcwd()
获取当前工作路径 等同pwd
指令dirname()
获取路径文件名部分basename()
获取路径文件名前部分link()
创建硬连接unlink()
移除硬连接symlink()
创建软连接mkdir()
创建文件夹rmdir()
删除文件夹chmod()
改变文件权限rename()
修改文件名和位置remove()
移除文件夹/etc/passwd
dony15$ cat /etc/passwd
root:*:0:0:System Administrator:/var/root:/bin/sh
_devdocs:*:59:59:Developer Documentation:/var/empty:/usr/bin/false
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false
...
用户信息的存储结构,冒号分割为7列
- 用户名
- 是否有密码*或x 有密码
- 用户id
- 组id
- 对用户的说明
- 用户家目录
- 用户登录成功后第一个执行程序(启动自动运行的第一个程序,一般为bash)
/etc/group
dony15$ cat /etc/group
sys:*:3:root
_devdocs:*:59:
_mysql:*:74:
certusers:*:29:root,_jabber,_postfix,_cyrus,_calendar,_dovecot
...
用户组信息的存储结构,冒号分割为4列
- 用户组名
- 用户组是否有密码*或x 有密码
- 用户组id
- 用户组成员的用户名
获取当前用户信息
struct passwd * getpwent(void);
获取指定用户的用户信息
struct passwd * getpwuid(uid_t uid);
…
更多用户操作函数可man getpwuid
查询
获取当前用户组信息
struct group * getgrent(void);
获取指定用户组信息
struct group *getgrgid(gid_t gid);
…
更多用户操作函数可man getgrgid
查询
本章主要为C语言笔记-17-Linux基础-用户与权限