Linux Day14:chgrp/chown/chmod
2018-10-19 本文已影响21人
泥人吴
权限管理:
复习:
[ r ]代表可读(read)
[ w ]代表可写(write)
[ x ]代表可执行(execute)
- 三类用户
- u:属主
- g:属组
- o:其它用户
- 第一组为『档案拥有者的权限』,以『install.log』那个档案为例, 该档案的拥有者可以读写,但不可执行;
- 第二组为『同群组的权限』;
- 第三组为『其他非本群组的权限』。
- 我们现在知道档案权限对于一个系统的安全重要怅了,也知道档案的权限对于使用者不群组的相关性,那么如何修改一个档案的属怅与权限呢?又!有多少档案的权限我们可以修改呢? 其实一个档案的属怅与权限有很多!我们先介绍几个常用于群组、拥有者、各种身份的权限的修改的挃令,如下所示:
chgrp :改变档案所属群组
chown :改变档案拥有者
chmod :改变档案的权限, SUID, SGID, SBIT 等等的特性
chown:改变文件属主(只有管理员可以使用此命令)
SYNOPSIS
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
root@VM-0-3-ubuntu:~# ls /tmp -l
total 12
-rw-rw-r-- 1 hadoop hadoop 0 Oct 21 23:12 a.hadoop
-rw-r--r-- 1 root root 140 Oct 21 12:30 net_affinity.log
-rw-r--r-- 1 root root 26 Oct 21 12:30 nv_gpu_conf.log
-rw-r--r-- 1 root root 191 Oct 21 12:30 setRps.log
# 修改文件a.hadoop的属主为root
root@VM-0-3-ubuntu:~# chown root /tmp/a.hadoop
root@VM-0-3-ubuntu:~# ls -l /tmp/a.hadoop
-rw-rw-r-- 1 root hadoop 0 Oct 21 23:12 /tmp/a.hadoop
# -R:修改目录及其内部文件的属性
# 通常改变目录的属主,但是其中的文件属主并没有改变,可以-R进行修改
# --reference=/path/to/somefile file ,...(属主,属组一起改的)
ubuntu@VM-0-3-ubuntu:~$ ls -l /tmp
total 12
-rw-rw-r-- 1 root hadoop 0 Oct 21 23:12 a.hadoop
-rw-r--r-- 1 root root 140 Oct 21 12:30 net_affinity.log
-rw-r--r-- 1 root root 26 Oct 21 12:30 nv_gpu_conf.log
-rw-r--r-- 1 root root 191 Oct 21 12:30 setRps.log
root@VM-0-3-ubuntu:~# chown --reference=/tmp/a.hadoop /tmp/setRps.log
root@VM-0-3-ubuntu:~# ls -l /tmp
total 12
-rw-rw-r-- 1 root hadoop 0 Oct 21 23:12 a.hadoop
-rw-r--r-- 1 root root 140 Oct 21 12:30 net_affinity.log
-rw-r--r-- 1 root root 26 Oct 21 12:30 nv_gpu_conf.log
-rw-r--r-- 1 root hadoop 191 Oct 21 12:30 setRps.log
# chown USRNAME(属主):GRPNAME(属组) file,...
root@VM-0-3-ubuntu:~# chown hadoop.hadoop /tmp/a.hadoop
root@VM-0-3-ubuntu:~# chown hadoop:hadoop /tmp/a.hadoop
root@VM-0-3-ubuntu:~#ls -l /tmp/a.hadoop
-rw-rw-r-- 1 hadoop hadoop 0 Oct 21 23:12 a.hadoop
`chown :GRPNAME file,...`(只改变属组)
`chown USRNAME.GRPNAME file,...`(也是同时改变属主、属组,但是在不同的文件中有不同的用法)
chown --reference=/tmp/abc /tmp/test
# 表示将/tmp/test的属主和属组改成和/tmp/abc/一样
chgrp改变文件所属组
-R:递归修改文件内的属组
-- reference=path to /somefile
# 表示修改a.hadoop的属组为root
root@VM-0-3-ubuntu:~# ls -l /tmp/a.hadoop
-rw-rw-r-- 1 root hadoop 0 Oct 21 23:12 a.hadoop
root@VM-0-3-ubuntu:~# chgrp root /tmp/a.hadoop
root@VM-0-3-ubuntu:~#ls -l /tmp/a.hadoop
chomd;修改文件权限
- 修改三类用户的权限
chmod MODE file,...
-R:
--reference= - Linux 档案的基本权限就有九个,分别是 owner/group/others 三种身份各有自己的read/write/execute 权限, 先复习一下刚刚上面提到的数据:档案的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各
权限的分数对照表如下:
r:4
w:2
x:1
- 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
root@VM-0-3-ubuntu:~# ls -l /tmp/a.hadoop
-rw-rw-r-- 1 hadoop hadoop 0 Oct 21 23:12 a.hadoop
# 修改文件a.hadoop的权限为750
root@VM-0-3-ubuntu:~# chmod 750 /tmp/a.hadoop
root@VM-0-3-ubuntu:~# ls -l /tmp/a.hadoop
-rwxr-x--- 1 hadoop hadoop 0 Oct 21 23:12 a.hadoop
# 考虑chmod 75 /tmp/a.hadoop
root@VM-0-3-ubuntu:~# chmod 75 /tmp/a.hadoop
root@VM-0-3-ubuntu:~#ls -l /tmp/a.hadoop
----rwxr-x 1 hadoop hadoop 0 Oct 21 23:12 a.hadoop
-
还有一个改变权限的方法呦!仍以前的介绍中我们可以发现,基本上就九个权限分别是(1)user(2)group (3)others 三种身份啦!那举我们就可以藉由 u, g, o 来代表三种身份的权限!此外,a 则代表 all 亦即全部的身份!那举读写的权限就可以写成 r, w, x 啰!也就是可以使用底下的方式来看:
鸟哥 - 修改某类用户的权限:
root@VM-0-3-ubuntu:~#ls -l /tmp/a.hadoop
----rwxr-x 1 hadoop hadoop 0 Oct 21 23:12 a.hadoop
root@VM-0-3-ubuntu:~# chmod u=rwx /tmp/a.hadoop
root@VM-0-3-ubuntu:~#ls -l /tmp/a.hadoop
-rwxrwxr-x 1 hadoop hadoop 0 Oct 21 23:12 a.hadoop
root@VM-0-3-ubuntu:~# chmod go=rx /tmp/a.hadoop
root@VM-0-3-ubuntu:~# ls -l /tmp/a.hadoop
-rwxr-xr-x 1 hadoop hadoop 0 Oct 21 23:12 /tmp/a.hadoop
root@VM-0-3-ubuntu:~# chmod g=r,o=rx /tmp/a.hadoop
root@VM-0-3-ubuntu:~# ls -l /tmp/a.hadoop
-rwxr--r-x 1 hadoop hadoop 0 Oct 21 23:12 /tmp/a.hadoop
- 修改某类用户的某位或某些位权限
root@VM-0-3-ubuntu:~# ls -l /tmp/a.hadoop
-rwxr--r-x 1 hadoop hadoop 0 Oct 21 23:12 /tmp/a.hadoop
root@VM-0-3-ubuntu:~# chmod u-x,g+x /tmp/a.hadoop
root@VM-0-3-ubuntu:~# ls -l /tmp/a.hadoop
-rw-r-xr-x 1 hadoop hadoop 0 Oct 21 23:12 /tmp/a.hadoop
练习:
$ ls -l xyz
-rw-rw-r-- 1 ywu ywu 0 Oct 11 13:23 xyz
$ chmod u=rwx xyz
$ ls -l xyz
-rwxrw-r-- 1 ywu ywu 0 Oct 11 13:23 xyz
$ chmod u=rx xyz
$ ls -l xyz
-r-xrw-r-- 1 ywu ywu 0 Oct 11 13:23 xyz
$ chmod 664 xyz
$ ls -l xyz
-rw-rw-r-- 1 ywu ywu 0 Oct 11 13:23 xyz
$ chmod g=rwx xyz
$ ls -l xyz
-rw-rwxr-- 1 ywu ywu 0 Oct 11 13:23 xyz
$ chmod g=rwx,o=w xyz
$ ls -l xyz
-rw-rwx-w- 1 ywu ywu 0 Oct 11 13:23 xyz
$ chmod -w xyz
chmod: xyz: new permissions are r--r-x-w-, not r--r-x---
# 这个没有明白?not r--r-x---
捕获.PNG
root@VM-0-3-ubuntu:~# useradd -M openstack
root@VM-0-3-ubuntu:~# finger openstack
Login: openstack Name:
Directory: /home/openstack Shell: /bin/sh
Never logged in.
No mail.
No Plan.
root@VM-0-3-ubuntu:~# ls /home
jmz ubuntu
root@VM-0-3-ubuntu:~# id openstack
uid=1006(openstack) gid=1006(openstack) groups=1006(openstack)
root@VM-0-3-ubuntu:~# cp -r /etc/skel /home/openstack
root@VM-0-3-ubuntu:~# ls -l /home
total 12
drwxr-xr-x 3 jmz jmz 4096 Oct 22 23:14 jmz
drwxr-xr-x 2 root root 4096 Oct 23 21:08 openstack
drwxr-xr-x 5 ubuntu ubuntu 4096 Oct 21 12:23 ubuntu
root@VM-0-3-ubuntu:~# ls -l /home/openstack -a
total 20
drwxr-xr-x 2 root root 4096 Oct 23 21:08 .
drwxr-xr-x 5 root root 4096 Oct 23 21:08 ..
-rw-r--r-- 1 root root 220 Oct 23 21:08 .bash_logout
-rw-r--r-- 1 root root 3771 Oct 23 21:08 .bashrc
-rw-r--r-- 1 root root 655 Oct 23 21:08 .profile
root@VM-0-3-ubuntu:~# chown -R openstack.openstack /home/openstack
root@VM-0-3-ubuntu:~# ls -ld /home/openstack
drwxr-xr-x 2 openstack openstack 4096 Oct 23 21:08 /home/openstack
root@VM-0-3-ubuntu:~# ls -la /home/openstack
total 20
drwxr-xr-x 2 openstack openstack 4096 Oct 23 21:08 .
drwxr-xr-x 5 root root 4096 Oct 23 21:08 ..
-rw-r--r-- 1 openstack openstack 220 Oct 23 21:08 .bash_logout
-rw-r--r-- 1 openstack openstack 3771 Oct 23 21:08 .bashrc
-rw-r--r-- 1 openstack openstack 655 Oct 23 21:08 .profile
# 修改为组即其它用户不能访问/home/openstack/
root@VM-0-3-ubuntu:~# chmod -R go= /home/openstack/
root@VM-0-3-ubuntu:~# ls -la /home/openstack/
total 20
drwx------ 2 openstack openstack 4096 Oct 23 21:08 .
drwxr-xr-x 5 root root 4096 Oct 23 21:08 ..
-rw------- 1 openstack openstack 220 Oct 23 21:08 .bash_logout
-rw------- 1 openstack openstack 3771 Oct 23 21:08 .bashrc
-rw------- 1 openstack openstack 655 Oct 23 21:08 .profile
root@VM-0-3-ubuntu:~# su - openstack
openstack@VM-0-3-ubuntu:~$
- 手动添加用户hive,基本组为hive(5000),附加组为mygroup
友情阅读推荐:
生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!
请猛戳下面链接:
B站链接:https://m.bilibili.com/space/338686099
YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists
生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA