帐号和权限管理
管理用户和组账号
a)
用户和组账号的概述
1.
用户账号:
超级用户:只有当进行系统管理、维护任务时,才建议使用root登录
普通用户:由root用户或其他程序员创建,在用户自己的宿主目录中拥有完整权限
程序用户:安装系统或部分应用程序时自行添加的一些特定低权限用户账号
2.
组账号:
基本组(私有组):每个用户账号至少属于一个组,这个组称为该用户的基本组
附加组(公共组):该用户还包括在其他组中,这些组称为该用户的基本组
对组账号设置的权限,将使用于组内的每一个用户账号
3.
UID和GID号:
UID:用户标识号
GID:组标识号
原则上每个用户的UID号是惟一的;root用户账号的UID号、GID号为固定值0 ,每个程序用户账号UID号默认为1~499, 500~60000默认分配给普通用户使用
b)
用户账号管理
1.
用户账号文件:
1)
/etc/passwd:用来保存用户名称、宿主目录、登录shell等基本信息,每一行对应一个用户的账号记录
Passwd文件中配置行格式:(七个冒号”;”分隔)
第一字段:用户账号的名称、也是登录系统时使用的识别名称;
第二字段:经过加密的用户密码字串,或者密码占位符”x”;
第三字段:用户账号的UID号;
第四字段:所属基本组账号的GID号;
第五字段:用户全名
第六字段:宿主目录,即该用户登录后所在的默认工作目录;
第七字段:登录shell等信息,用户完成登录后使用的shell
2)
/etc/shadow :用于保存密码字串、密码有效期等信息,每一行对应一个用户的密码记录
默认只有root
用户能够读取文件中的内容,而不允许直接编辑该文件中的内容
第一字段:用户账号名称
第二字段:使用MD5加密的密码字串信息当为“*”“!!”时表示此用户不能登录到系统,为空无需密码
第三字段:上次修改密码的时间
第四字段:密码最短有效天数,默认为0表示不进行限制
第五字段:密码最长有效天数,默认为99999,表示不进行限制
第六字段:提前多少天警告用户口令将过期,默认为7;
第七字段:密码过期后多少天内禁用此用户;
第八字段:账号失效时间,默认为空,表示账号永久可用;
第九字段:保留字段,目前没有特定用途
2.
添加、删除、修改用户账号
1)
Useradd命令——添加用户账号
- u :指定用户UID号,要求该UID号未被其他用户使用(可修改)
- d :指定用户的宿主目录位置
- e :指定用户的账号失效时间,可使用YYYY-MM-DD日期格式
- g :指定用户的基本组名(或使用GID号)
- G:指定用户的附加组名(或使用GID号)
- M :不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录
- s :指定用户的登录shell
Eg:创建名为wen的用户账号,并通过查看passwd、shadow文件和/home目录来确认新增用户账号时的变化
Useradd wen
Tail - 1 /etc/passwd
Tail - 1 /etc/shadow
Ls - A/home/wen/
Eg:创建一个辅助管理员账号admin,将其基本组指定为whell、附加组为root,宿主目录指定为/admin
Useradd - d /admin - g wheel -G root admin
Eg:创建一个名为down的ftp账号(禁止终端登录),该账号将于2011-12-31失效
Useradd - e 2011-12-31 - s /sbin/nologin down
2)
Passwd命令——为用户账号设置密码
- d:清空指定用户的密码,仅使用用户名即可登录系统
- l:锁定用户账号
- S:查看用户账号的状态(是否锁定)
- u:解锁用户账户
eg:锁定、解锁用户账号zhang
passwd - l zhangpasswd - S zhang
passwd - u zhangpasswd - S zhang
3)
Usermod命令——修改用户账号属性
- u :更改用户UID号
- d :更改用户的宿主目录位置
- e :修改用户的账号失效时间,可使用YYYY-MM-DD日期格式
- g :修改用户的基本组名(或使用GID号)
- G :修改用户的附加组名(或使用GID号)
- M :不为用户建立并初始化宿主目录
- s
:修改用户的登录shell
- l
:更改用户账号的登录名称
- L
:锁定用户账号
- U
:解锁用户账号
4)
Userdel命令——删除用户账号
Userdel
[ - r ]
用户名
(
- r
连用户的宿主目录一并删除)
Userdel
- r
用户名=rm- r f/home/
用户名
3.
用户账号的初始配置文件
文件来源:新建用户账号时,从/etc/skel目录复制而来
~/.bash_profile:用户每次登录时执行
~/.bashrc:每次进入新的Bash环境时执行
~/.bash_logout:用户每次退出时执行
c)
组账号管理
1.
与用户账号文件相类似
/etc/group :保存组账号名称、GID号、组成员等基本信息、
/etc/gshadow:保存组账号的加密密码字串等
Eg:root组包括哪些用户成员、哪些族中包含root用户
Grep “^root”/etc/group——检索root组包括哪些用户
Grep “root”/etc/group——检索哪些组包括root用户
2.
Groupadd命令——添加组账号
groupadd [ - g GID ] 组账号名(- g :指定GID号)
groupadd [ - g GID ] 组账号名(- g :指定GID号)
3.
Gpasswd命令——添加、设置、删除组成员
用途:设置组账号密码(极少用)、添加、删除组成员
格式:
gpasswd
[
选项 ] ..
组账号名
- a :向组内添加一个用户;
- d:从组内删除一个用户成员
- M:定义组成员列表,以逗号分隔(
慎用,会覆盖以前的内容)
Eg
:
gpasswd
- a mikeroot
将用户
mike
加入到
root
组中
Gpasswd
- dwebmaster
将
webmaster
用户从
root
组中删除
4.
Groupdel命令——删除组账号
格式:
Groupdel
组账号名
d)
查询账号信息
1.
Groups 命令——查询用户账号所属的组
格式:
groups [
用户名 ]
2.
Id 命令——查询用户账号的身份标示
格式:
id[
用户名 ]
3.
Finger 命令——查询用户账号的登录属性
格式:
finger [
用户名 ]
4.
W 命令——查询当前登录主机的用户登录情况
Users、w、who命令——查询已登录到主机的用户信息
6.2 管理目录和文件的属性
a)查看目录和文件的属性
1.
权限字符在文件盒目录中的含义:
权限
|
文件
|
目录
|
r (4)
|
查看文件内容
|
查看目录内容(显示子目录、文件列表)
|
w (2)
|
修改文件内容
|
修改目录内容(在目录中新建、移动、删除文件或子目录)
|
x (1)
|
执行该文件(程序或脚本)
|
执行cd 命令进入或退出该目录
|
2.
归属(所有权)
属主:拥有该文件或目录的用户帐号
Eg:
- r w - r - - r - - 1rootroot3429804-0200:23install.log
第
1
个字符:表示文件类型
,可以是
d(
目录
)
、
b(
块设备文件
)
、
c(
字符设备文件
)
,减号“
-”
(普通文件)、字母“
l”
(链接文件)等
第
2 ~
第
4
个字符:表示该文件的属主用户(
user
)对该文件的访问权限
第
5 ~
第
7
个字符:表示该文件的属组内各成员用户(
Group
)对该文件的访问权限
第
8 ~
第
10
个字符:表示其他任何用户(
other
)对该文件的访问权限
b)设置目录和文件的权限——
chmod
格式1:chmod[ugoa] [+-=] [rwx] 文件或目录...
格式2:chmodnnn文件或目录...
Eg:调整mymkdir文件的权限,为属主用户添加执行权限,去除其他用户的读取权限
Chmodu+x,o-rmymkdir
Eg:以递归的方式将/var/ftp/pub目录中所有子目录、文件的权限都设置为rw-r—r—
Chmod - R644 /var/ftp/pub/
c)设置目录和文件的归属——
chown
chown
命令:
格式:chown属主文件或目录
chown
:
属组文件或目录
chown
属主:属组文件或目录
常用命令选项:
-R:递归修改指定目录下所有文件、子目录的归属
Eg:将/var/ftp/pub/目录的属主由root改为ftp
Chown -R ftp /var/ftp/pub/
Eg:将mymkdir文件的属主更改为daemon、属组更改为wheel
Chown - ld daemon:wheel/opt/wwwroot/
补充:
Chgrp
组名
文件或目录
——
修改组的目录和文件归属