Linux的基础知识之用户、组合权限(一)
Linux的基础知识之用户权限管理、用户添加、用户分组
Linux的基础知识之用户、组合权限(一)
权限
权限:定义文件被某一个标识符所拥有。Linux中文件权限共有10位,其含义分别表示如下
对于文件:
R:表示可读,可以参看文件内容;
W:表示可写,可以编辑或者删除该文件;
X:表示可执行
对于目录:
R:表示可读,可以列出该目录内所有的文件;
W:表示可写,可以在该目录创建文件;
X:可以使用cd切换进子目录,也可以使用ls -l 查看内部文件的详细信息,所以目录默认有可执行权限。
进程的安全上下文(secure context)。用户操作计算机时便启动了一个进程,进程是用户操作计算机的代理,进程启动时按照对应用户的身份运行,所以进程也是有属主属组的。权限管理:
chown:改变文件属主(只有管理员可以改变)
chown USERNAME file,...-R: 递归修改目录及其内部文件的属主;--reference=DIRECTORY/SOMEFILES FILENAMES:引用参考,将FILENAMES的属性修改成和DIRECTORY/SOMEFILES一样的属性;chown USERNAME :GROUPNAME file,...,同时修改文件的属主属组;chown USERNAME .GROUPNAME file,...,同时修改文件的属主属组;(":"和“.”是一样的)
chown :GROUPNAME file,...,只修改文件的属组;
chgrp:改变文件属组(只有管理员可以改变)
chgrp USERNAME file,...-R: 递归修改目录及其内部文件的属组;--reference=DIRECTORY/SOMEFILES FILENAMES:引用参考,将FILENAMES的属性修改成和DIRECTORY/SOMEFILES一样的属性;
chmod:修改文件的权限
修改三类用户的权限:chmod MODE file,...
-R:递归修改--reference=DIRECTORY/SOMEFILES FILENAMES:参考照修改例子: chmod 750 FILENAME
修改某类或者某些类权限:u,g,o,a
chmod 用户类别=MODE file,..例子:chomd u=rwx file,... ; chomd u=r-x file; chmod g=r,o=rw file 或者 chmod go=r file
修改某个用户的某位或某些位权限:u,g,o,a
chmod 用户类别=MODE file,..例子: chmod u-x file name; chmod u+wx,g-x file name;chmod a+x file name
umask: 查看用户的遮罩码,也可以使用umask设定默认的umask
root用户的遮罩码为0022,其创建的文件默认的权限为666-022=644,Linux创建的文件默认不可执行;创建的目录默认的权限为777-022=755;普通用户的遮罩码为0002,其创建的文件默认的权限为666-002=664;创建的目录默认权限为777-002=775;若果文件的计算结果又可执行权限,系统会自动将其权限加1。
用户
用户:系统上一个标识符。
每个用户都有一个UID,在/etc/passwd中存储了每一个用户的相关信息,相当于一个用户数据库,每个用户登录时使用的shell也是在该文件中定义的,而用户的密码保存在/etc/shadow文件中(影子口令)。【查看passwd的man文档,whatis passwd ; man 5 passwd】。
用户类别:
管理员:管理员的UID是0
普通用户:UID范围从1~65535
系统用户:UID从1~499,运行后台进程的用户,如ftp、rsync、mail等,该类用户不能够登录系统。
一般用户:UID从500~65535。
/etc/passwd文件中各个字段的含义:(man 5 passwd)
account:登录名
passwd:密码或者密码占位符
UID:用户ID
GID:用户基本组ID
GECOS:用户的注释信息
HOME Directory:用户家目录
shell:用户登录时使用的shell,/etc/shells保存系统中所有可以使用的shell。
/etc/shadow文件中各个字段的含义:(man 5 shadow)
login name:登录名;
passwd:加密后的密码,格式:$加密算法$标识$加密后的密码,密码位显示"!!"或者"*"表示对应的用户是被锁定的,不允许登录;
date of last password change:上一次修改密码时的日期;
minimum password age:密码最短使用期限,0表示不设限定;
添加用户:maximum password age:密码最长使用期限;
password warning period:密码快要过期之前多少天开始提醒用户;
password inactivity period:用户被禁用前所经历的天数;
account expiration date:账号禁用时间;
reserved field:保留字段;
useradd :添加用户(adduser,useradd的一个链接),useradd USERNAME
-u 指定用户的ID; -g 设置用户的基本组;-G 设置用户的附加组;-c指定用户注释信息;-d 指定用户的家目录;-s 指定shell的路径(出现在/etc/shells中出现的shell);-m和-k 创建用户的家目录,并将目录/etc/skel下面的默认文件复制到新的目录下;-M 添加用户的时候不创建家目录;-r 添加一个系统用户(系统用户是没有家目录的);
文件/etc/login.defs中存放默认的用户配置信息。
注意:用户的默认属性存在文件:/etc/default/useradd中
userdel:删除用户, 默认不删除用户的家目录,可以使用 -r 选项删除信息;
id:查看用户的属性信息;
finger:查看用户账号属性信息;
usermod:修改用户账号属性信息,和useradd的参数几乎相同;
usermod -d Directory -m USERNAME 修改用户的家目录;usermod -l LoginName 修改用户的登录名;
chsh:修改shell;
chfn:修改用户指纹,修改用户的注释信息;
密码管理:
passwd [USERNAME] PASSWORD
--stdin,可以从标准输入中读取数据;-l, 锁定用户;-u,解锁用户;
pkck:检测用户账号的完整性
chage:改变用户密码过期信息
组
组:权限的集合,用于指派权限,是一个逻辑概念,本质也是一个标识符。用户不能通过组名登录计算机。
每个组都有一个GID,在/etc/group中存储了每一个组的相关信息,相当于组数据库。每个组也需要密码,存放在/etc/gshadow文件中。
组类别:
管理组:管理员的GID是0
普通组:GID范围从1~65535
系统用户:GID从1~499,运行后台进程的用户,如ftp、rsync、mail等,该类用户不能够登录系统。
一般用户:GID从500~65535。
组类别:(另外一个角度划分)
基本组:用户的默认组
私有组:创建一个用户的时,若没有指定用户所述组,则系统自动为该用户创建一个与用户名同名的组,该组称为私有组。
附加组:用户基本组之外的所有组都是附加组。
/etc/group文件中各个字段的含义:(man 5 shadow)
group name:组名;
passwd:密码占位符;
GID:组ID
user_list:以该组为附加组的用户列表;
date of last password change:上一次修改密码时的日期;
minimum password age:密码最短使用期限,0表示不设限定;
添加组:maximum password age:密码最长使用期限;
password warning period:密码快要过期之前多少天开始提醒用户;
password inactivity period:用户被禁用前所经历的天数;
account expiration date:账号禁用时间;
reserved field:保留字段;
添加组:groupadd GROUPNAME
-g 指定组号;-r 指定该组为系统组;
删除组:groupdel
修改组:groupmod
-g 修改gid;-n修改组名;
修改组密码:gpasswd GROUPNAME
登录到一个新组:newgrp,切换用户所在的组,如从基本组切换到附加组中。
用户的登录
Bash的配置文件:
按照全局和局部性分类:
全局配置文件:/etc/profile, /etc/profile.d/*.sh, /etc/bashrc
个人配置文件:~/bash_profile, ~/bashrc
按照作用分类:
profile类的文件:①用于设定环境变量;②用户登录时运行命令或者脚本;
bashrc类文件: ①用于设定本地变量;②定义命令别名;
Shell的类型:
登录式Shell:
包括:①正常通过某终端登录的Shell ②使用su -l USERNAME su - USERNAME 切换过去的shell
读取配置顺序:/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc;
非登录式Shell:
包括:①直接使用su USERNAME切换用户;②图形终端下打开的命令窗口;③自动执行的shell脚本;
读取配置顺序:~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh,不读取/etc/profile和~/.bash_profile;
更多推荐
所有评论(0)