linux的权限管理
1.权限介绍和示例
root用户权限最高,所以一般对它不做什么权限设置。其他用户就要设定权限并且遵守权限了。
文件权限:
#文件属性
[root@localhost ~]# touch 1.txt
[root@localhost ~]# ls -l
总用量 4
-rw-r--r--. 1 root root 0 6月 15 19:09 1.txt
-rw-------. 1 root root 1304 6月 11 15:41 anaconda-ks.cfg
#第一段的第一个字符表示文件类型 -表示文件、d表示目录、l表示软连接、b表示块设备(ls /dev 可以看到硬盘sda等)
#第一段第2-4个字符,表示该文件所属用户权限 rw-
#第一段第5-7个字符,表示该文件所属用户组的权限 r--
#第一段第8-10个字符,表示其他用户对该文件权限 r--
#第一段的第11个字符. 表示开启selinux的状态下建立的,也证明selinux是开启状态的
#查看selinux状态
#enabled表示开启状态,disabled表示禁用状态
#开启和关闭selinux,需要root权限才能修改
#在root用户下输入 vi /etc/selinux/config 将第7行改为 SELINUX=disabled 然后保存退出,重启系统生效
#第二段的数字,表示该文件的硬链接数量
#第三段的字符串,表示该文件所属用户
#第四段的字符串,表示该文件所属用户组
#第五段的数字,表示该文件的大小,默认单位为B,如果像按照KB来显示,可以通过ls -lh指令来查看,h是human的意思,以人类可读的方式显示,会自动按照文件大小来设定显示单位
#第六段到倒数第二段,表示该文件的修改时间,只要改动了文件内容,这个时间会自动变为修改文件时的时间
#最后一段,文件名称
字符含义:
字符 | 含义 |
---|---|
r | 代表读权限 |
w | 代表写权限 |
x | 代表可执行权限 |
- | 空权限位,表示没有这个权限,9位权限不能少,没有的权限就用-代替 |
权限值表:
权限符号 | 对应值 | 权限符号 | 对应值 |
---|---|---|---|
— | 0 | r– | 4 |
–x | 1 | r-x | 5 |
-w- | 2 | rw- | 6 |
-wx | 3 | rwx | 7 |
ugo权限体系(以上述-rw-r–r–为例):
rw- | r– | r– |
---|---|---|
user(拥有者) | group(所属组) | other(其他用户) |
文件权限和目录权限的解释说明:
文件权限:rwx 读写执行
目录权限:rwx r表示可以查看目录下有哪些文件,x表示可以cd切换到该目录,w表示可以在目录中创建、修改、删除文件等操作
为了安全操作,一般情况下:
文件权限默认:644权限(rw-r--r--) 狠一点就给600权限(rw-------)
目录权限默认:755权限(rwxr-xr-x) 狠一点就给700权限(rwx------)
2.文件权限的设置
只有文件的拥有者和root用户才能改变文件的权限
chmod #设置文件的访问权限 chmod 参数 权限 文件名
chmod g-r,o+w 1.txt #表示去掉文件所属组的读权限,增加其他用户的写权限,同理,对某一用户设置权限,进行+/-操作,+代表增加权限,-代表去掉权限
#除以上命令,还可以通过直接修改权限值来操作
例如: -rw-r--r-- 除第一个字符,剩下的每三个为一组,则此权限值为644
将其修改为 ---x-w-r-- (此权限值为124)
只需要执行 chmod 124 1.txt
3.修改文件所属
修改文件的所属,普通用户是不能修改其他用户文件的所属的,需要root用户
chown #改变拥有者
例1: chown test2:test2 1.txt #修改所属用户和用户组,前面的test2表示用户,后面的是组
例2: chown test1 1.txt #修改所属用户
使用uid和gid修改文件的所属用户和所属用户组:
#每个用户都有属于自己的uid和gid
chown uid:gid 1.txt #输入对应的uid和gid数字即可
4.可执行程序特殊目录说明
通过echo $PATH
可以看到,类似于Windows的环境变量中的PATH,放到这个二目录中的命令程序,我们可以在任意目录下通过这个命令程序名称来直接调用命令来执行。