`

ma系列之-6-用户 组 属主组 文件操作权限

 
阅读更多

 

 42分钟

 

0 引子:

命令是同一个命令,进程是同一个进程,但是TOM JERRY对同一资源执行ls命令后看大的结果可能会截然不用,原因如下阐述:

 

linux上每一套资源分别定义了三套使用能力, 文件的属主  文件的属组  文件的其他用户访问权限
同时linux也需要能够识别用户 组 其他用户
对于计算机而言 怎么识别用户 组 其他人呢??
用户,组都是一个标识,
不同的人发起ls进程,进程是用户发起的进程,肯定和用户有关联,进程是用户操作计算机的代理,进程也是有属主 属组的,
谁发起了进程,那么进程就以谁的身份来运行,
如果tom 发起ls  那么ls进程属主属组都为tom(此时不应该看ls文件的属主 属组) 而文件inittab.new  属主tom也为tom 那么针对文件inittab.new的访问权限就是所有(属主 属组 其他)  这套流程叫做权限上下文
如果jerry 发起ls 能否执行就要靠inittab.new的属主 属组是否支持jerry。

 

 

执行命令也是一个文件,用户tom要执行ls文件的时候,需要先看ls文件能否让用户tom执行,一旦可以
那么ls变成一个进程,此时ls进程的属组就是tom的信息,然后ls 在查看 /usr/local时文件时候,此时就需要文件/usr/local的权限和tom的进程ls
做对比,对比过程为:看进程的属主和访问文件的属主是否一样,如果不一样,那么看进程的运行者是否属于文件的属组(而不是看进程的数组是否等于可执行文件的数组)

 

 

1  r w x 解释:

 

用户、组、权限

安全上下文(secure context):系统自动判断

权限:
r, w, x

文件:
r:可读,可以使用类似cat等命令查看文件内容;
w:可写,可以编辑或删除此文件;
x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行; 一般情况下不建议文件默认有执行权限万一是病毒 但是目录默认是有执行权限的

目录:
r: 可以对此目录执行ls以列出内部的所有文件;
w: 可以在此目录创建文件;
x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息;

rwx:
	r--:只读
	r-x:读和执行
	---:无权限
	
0 000 ---:无权限
1 001 --x: 执行
2 010 -w-: 写
3 011 -wx: 写和执行
4 100 r--: 只读
5 101 r-x: 读和执行
6 110 rw-: 读写
7 111 rwx: 读写执行

755:rwxr-xr-x

rw-r-----: 640

660:rw-rw----
rwxrwxr-x:775

 

 

2  用户 组 概念:

 

用户:UID, /etc/passwd   用户信息数据库文件  里面有用户名 家目录 默认shell类型
组:GID, /etc/group

影子口令:  存放用户密码
用户:/etc/shadow
组:/etc/gshadow

用户类别:
管理员:0 uuid号
普通用户: 1-65535    uuid号
	系统用户:1-499
	一般用户:500-60000

用户组类别方式1:
管理员组:
普通组:
	系统组:
	一般组:
	
用户组类别方式2:
	私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组
	基本组:用户的默认组
	附加组,额外组:默认组以外的其它组

 

 

  /etc/passwd  /etc/shadow 文件内字段含义:

/etc/passwd
account: 登录名
password: 密码
UID:用户ID
GID:基本组ID
comment: 注释
HOME DIR:家目录
SHELL:用户的默认shell

/etc/shadow
account: 登录名
encrypted password: 加密的密码

 

3  各种管理操作:

 

       useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage

 

useradd  [options]  USERNAME 
	-u UID(UID必须是尚未使用的id 而且要>=500)   eg: useradd -u 1000 zm   后 tail -1 /etc/passwd
	-g GID(基本组)  eg: useradd -g mygroup zm    后 tail -1 /etc/passwd
	-G GID,...  (附加组 可以有多个)
	-c "COMMENT"  增加注释
	-d /path/to/directory  指定家目录
	-s SHELL 指定使用shell类型, 可以通过 [root@chinadaas109 ~]# cat /etc/shells 来查看都有哪些shell类型  eg: useradd -s /bin/sh zm  然后[root@chinadaas109 ~]# echo $SHELL 查看shell类型
	-m -k
	-M
	-r: 添加系统用户   系统用户是没有家目录的 即使手动-d指定也不会有


userdel:
userdel [option] USERNAME
	-r: 同时删除用户的家目录   remove

id:查看用户的帐号属性信息
	-u 只看用户  id -u zm
	-g 
	-G  
	-n  显示名称而不显示id值   id -g -n zm



usermod
	-u UID 
	-g GID
	-a -G GID:不使用-a选项,会覆盖此前的附加组;
	-c
	-d -m: 指定新的家目录, -m表示包含在原来家目录下的数据也移动到新的家目录中
	-s 修改shell类型
	-l 修改登录名称
	-L:锁定帐号
	-U:解锁帐号


密码管理:
passwd [USERNAME]
	--stdin: standard input 从标准输入当中读入数据作为密码
	-l 锁定账号
	-u 解锁账号
	-d: 删除用户密码


组管理:
创建组:groupadd
groupadd 
	-g GID
	-r:添加为系统组
	
groupmod
	-g 修改组ID
	-n 修改组名

groupdel 组名称


gpasswd:为组设定密码

 

 chown ,  chmod

 

chown: 改变文件属主(只有管理员可以使用此命令)
# chown USERNAME file,...     将file的属主修改为username
	-R: 修改目录及其内部文件的属主
	--reference=/path/to/somefile file,...  把file和file后面的文件的属主设定的和/path/to/somefile的属主属组一样

chown USERNAME:GRPNAME file,...   对文件file同时改变 属主:属组    支持-R操作  eg: ]# chown -R zm:zm  mydir
chown         :GRPNAME file,...   对文件file只改变       :属组 
chown USERNAME.GRPNAME file,...   等同于上面
	
# chgrp GRPNAME file,...   修改属组 
	-R
	--reference=/path/to/somefile file,...
	

chmod: 修改文件的权限
修改三类用户的权限:
chmod MODE file,...
	-R
	--reference=/path/to/somefile file,...
	
eg:  chmod 755 /tmp/abc


rwxr-x---

其中, rwx的顺序是固定的,谁在前谁在中,谁在后是固定的, ugo也是固定的,用户,组,其他人
修改某类用户或某些类用户权限:
u,g,o,a
chmod 用户类别=MODE file,...   
eg: chmod u=rwx /tmp/abc
    chmod g=rw- /tmp/abc
    chmod o=rwx /tmp/abc
    chmod u=7	/tmp/abc 
    chmod g=rx,o=w  /tmp/abc
	chmod g,o=w  /tmp/abc
    chmod -R go= /home/test 表示给组和其他人没有任何权限
修改某类用户的某位或某些位权限:
u,g,o,a  其中a表示all,修改所有权限
chmod 用户类别+|-MODE file,...
eg:
chmod u+x /tmp/abc 表示将用户权限增加x(可执行)
chmod u+x,g-w /tmp/abc
chmod +x /tmp/abc 表示将所有角色都增加x权限

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics