linux用户身份与文件权限相关命令介绍
一、用户身份与能力
root用户拥有极高的系统所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭进程,开启/禁用硬件设备等权限。
用户UID
其实 root 只是个名字,真正让它成为“超级用户”的是 UID值:
UID(即User IDentification的缩写):每个用户都有对应的UID值,就像我们的身份证号码。
超级用户UID0:root用户默认为0。 系统用户UID1-999:系统中系统服务由不同用户运行,更加安全,默认被限制登陆系统。 普通用户UID1000~:即管理员创建的用于日常工作而不能管理系统的普通用户。
注意:UID一定是不能冲突的,管理员创建的普通用户UID从1000开始(即便前面有闲置的号码)。帐户名称与UID保存在/etc/passwd文件中,而帐户密码则保存在/etc/shadow文件中。
组GID
GID(即Group IDentification的缩写):可将多个用户加入某个组中,方便指派任务或工作。
想象公司员工如果想要在同部门内共享资料,就可以加入自己的工作组如技术部、运维部、财务部……
每个用户在被创建时均会创建一个默认组(其GID与UID相同,俗称基本组)而后加入的则叫扩展组。
用户组名称与GID保存在/etc/group文件中。
二、文件权限与归属
Linux系统中一切都是文件,文件和目录的所属与权限——来分别规定所有者、所有组、其余人的读,写,执行权限。
文件权限
读r(read),写w(write),执行x(execute)简写即为(r,w,x),亦可用数字(4,2,1)表示
举例:如果某文件权限为7则代表可读,可写,可执行(4+2+1)。若权限为6则代表可读(4),可写(2)。权限为5代表可读(4)和可执行(1)。而权限为3代表可写(2)和可执行(1)。
文件类型
例如:下图中的文件所有者(属主)为root,所有组(属组)为root,文件名为instsall.log,权限位的第一个减号”–“代表的是普通文件类型。
文件类型有:
- :普通文件 d :目录文件 b :块设备文件 c :字符设备文件 p :管道文件
文件的权限为rw-r–r–也就是分别表示所有者(属主)有读写权限,所有组(属组)有读权限,其余人也仅有读权限。
权限归属
普通文件 即实际保存数据的地方,其并不具备删除自身的权限:
r:可读取文件的实际内容 w:可编辑/新增/修改该文件的实际内容 x:可被执行
目录文件 即保存有目录结构和文件权限:
r:可读取目录结构和权限 w:可更改目录结构列表、新建/删除/重命名/转移子文件/目录。 x:表示用户可进入到该目录中
注意:在该目录中创建的文件自动继承此目录的用户组(只可以对目录设置)
三、chmod与chown使用
chmod命令用于修改文件或目录的【权限】,修改文件或目录的权限:格式为 chmod [参数] 权限 文件或目录名称。 chown命令用于修改文件或目录的【所属主与所属组】:格式为 chown [参数] 所属主:所属组 文件或目录名称。
例如:
chown -R root:root /var/lib/jenins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/jenkins
chmod与chown的命令参数很简单记——对于文件不加参数,遇到目录加大写-R(递归,修改目录内所有文件的属性)。
四、su命令与sudo服务
su命令
su命令用于变更使用者的身份(切换登陆者),格式为:su [-] 用户名。
root用户切换到其他用户时无需输入密码,尝试切换到普通用户olysa:
[root@root ~]# su olysa
普通用户再切换用户需要输入对方帐户密码才可以。
若需将环境变量改变为新用户的,请加参数 - 。
sudo服务
sudo命令用于给普通用户提供额外权利来完成原本超级用户才能完成的任务,格式为:sudo [参数] 命令名称 。
sudo的特色功能有:
1:限制用户执行指定的命令。
2:记录用户执行的每一条命令。
3:配置文件(/etc/sudoers)提供集中的管理用户、权限与主机等参数。
4:验证过密码后5分钟(默认值)内无须再让用户验证密码,更加的方便。
sudo命令的常用参数包括有:
参数 | 作用 |
---|---|
-h | 列出帮助信息。 |
-l | 列出当前用户可执行的命令。 |
-u | 用户名或UID值 以指定的用户身份执行命令。 |
-k | 清空安全时间,下次执行sudo时需要再次密码验证。 |
-b | 在后台执行指定的命令。 |
-p | 更改询问密码的提示语。 |
只用超级用户才可以使用visudo命令编辑sudo程序的配置文件/etc/sudoers。