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;


Logo

更多推荐