账号和权限管理

账号和权限管理

 
1.管理用户和组账号 
1.1 用户和组账号概述
vLinux基于用户身份对资源访问进行控制
     ■ 用户帐号:
      ●  超级用户root
      ●  普通用户
      ●  程序用户
     ■ 组帐号:
      ●  基本组(私有组)
      ●  附加组(公共组)
     ■ UID和GID:
      ●  UID(User Identity,用户标识号)
      ●  GID(Group Identify,组标识号)
超级用户,即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统
普通用户帐号一般只在用户自己的宿主目录中有完全权限
程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin、daemon、ftp、mail等
root用户的UID的固定值为0、root组帐号的GID号为固定值0
1~499的UID、GID默认保留给程序用户使用,普通用户/组使用的UID、GID号在500~60000之间
 
1.2用户账号管理
用户账号文件——/etc/shadow
v用于保存用户的帐号基本信息
     ■ 文件位置:/etc/passwd
     ■ 每一行对应一个用户的帐号记录
[root@localhost ~]# tail -2 /etc/passwd
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
benet:x:500:500:BENET Student User:/home/benet:/bin/bash
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患,后来经改进后,将密码转存入专门的shadow文件中并严格控制权限,而passwd文件中仅保留密码占位符“x”
字段1:用户帐号的名称
字段2:用户密码字串或者密码占位符“x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell信息
 
v用于保存密码字串、密码有效期等信息
     ■ 文件位置:/etc/shadow
     ■ 每一行对应一个用户的密码记录
[root@localhost ~]# tail -2 /etc/shadow
xfs:!!:14374:0:99999:7:::
teacher:$1$BT7teaYX$s2sr6uFUwKhtU.8/8VpzB1:14374:0:99999:7:::
字段1:用户帐号的名称
字段2:加密的密码字串信息
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认值为0
字段5:密码的最长有效天数,默认值为99999
字段6:提前多少天警告用户口令将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
默认只有root用户能够读取文件中的内容,并且不允许root直接编辑该文件中的内容
上次修改密码的时间,表示从1970年01月01日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数 
 
添加用户账号 
vuseradd命令
     ■ 格式:useradd  [选项]...  用户名
v常用命令选项
     ■ -u:指定 UID 标记号
     ■ -d:指定宿主目录,缺省为 /home/用户名
     ■ -e:指定帐号失效时间
     ■ -g:指定用户的基本组名(或UID号)
     ■ -G:指定用户的附加组名(或GID号)
     ■ -M:不为用户建立并初始化宿主目录
     ■ -s:指定用户的登录Shell
#用户添加示例: 
创建一个名为lisi的账号(禁止终端登录),该账号将于2015-12-31号失效
[root@localhost ~]# useradd -e 2015-12-31 -s /sbin/nologin lisi
 
指定mike的基本组为mike,并加入到ftpuser组;指定主目录为/ftphome/mike;不允许mike通过本地登录服务器
[root@localhost ~]# useradd -d /ftphome/mike -g mike -G ftpuser -s /sbin/nologin mike 
 
用户账号的初始配置文件
v文件来源
     ■ 新建用户帐号时,从 /etc/skel 目录中复制而来
v主要的用户初始配置文件
     ■ ~/.bash_profile:用户每次登录时执行
     ■ ~/.bashrc:每次进入新的Bash环境时执行
     ■ ~/.bash_logout:用户每次退出登录时执行
[root@localhost ~]# cat ~/.bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
……
 
设置/更改用户口令——passwd
vpasswd命令
     ■ 格式:passwd  [选项]...  用户名
v常用命令选项
     ■ -d:清空用户的密码,使之无需密码即可登录
     ■ -l:锁定用户帐号
     ■ -S:查看用户帐号的状态(是否被锁定)
     ■ -u:解锁用户帐号
[root@localhost ~]# passwd    <==指定用户名时,修改当前账号的密码
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
 
修改用户账号的属性——usermod
vusermod命令
     ■ 格式:usermod  [选项]...  用户名
v常用命令选项
     ■ -l:更改用户帐号的登录名称
     ■ -L:锁定用户账户
     ■ -U:解锁用户账户
     ■ 以下选项与useradd命令中的含义相同
      ●  -u、-d、-e、-g、-G、-s
 
删除用户账号——userdel
vuserdel命令
     ■ 格式:userdel  [-r]  用户名
     ■ 添加 -r 选项时,表示连用户的宿主目录一并删除
[root@localhost ~]# useradd stu01
[root@localhost ~]# ls -ld /home/stu01/
drwx------ 2 stu01 stu01 4096 09-09 12:38 /home/stu01/
[root@localhost ~]# userdel -r stu01       <==删除用户帐号stu01
[root@localhost ~]# ls -ld /home/stu01/
ls: /home/stu01/: 没有那个文件或目录
 
1.3 组账号管理
组账号文件
v与用户帐号文件相类似
     ■ /etc/group:保存组帐号基本信息
     ■ /etc/gshadow:保存组帐号的密码信息
[root@localhost ~]# grep "adm" /etc/group
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon     <==组帐号名"adm",成员“root,adm,daemon”
 
添加组账号——groupadd
vgroupadd命令
     ■ 格式:groupadd  [-g GID]  组帐号名
[root@localhost ~]# groupadd -g 1000 market      <==添加组帐号market
[root@localhost ~]# tail -1 /etc/group
market:x:1000:
 
添加删除组成员——gpasswd
vgpasswd命令
     ■ 用途:设置组帐号密码(极少用)、添加/删除组成员
     ■ 格式:gpasswd  [选项]...  组帐号名
v常用命令选项
     ■ -a:向组内添加一个用户
     ■ -d:从组内删除一个用户成员
     ■ -M:定义组成员列表,以逗号分隔
[root@localhost ~]# gpasswd -a aaa market      <==添加组成员aaa
正在将用户“aaa”加入到“market”组中
[root@localhost ~]# grep "market" /etc/group
market:x:1000:aaa
[root@localhost ~]# gpasswd -M aaa,root,adm market      <==定义多个组成员
[root@localhost ~]# grep "market" /etc/group
market:x:1000:aaa,root,adm

[root@localhost ~]# gpasswd -d root market    <==删除组成员root
正在将用户“root”从“market”组中删除
[root@localhost ~]# grep "market" /etc/group
market:x:1000:aaa,adm
 
删除组账号——groupdel
vgroupdel命令
     ■ 格式:groupdel  组帐号名
[root@localhost ~]# groupdel market      <==删除组帐号market
[root@localhost ~]# grep "market" /etc/group
[root@localhost ~]#
 
1.4 查询账号信息
vid命令
     ■ 用途:查询用户身份标识
     ■ 格式:id  [用户名]
[root@sky ~]# id root
uid=0(root) gid=0(root) 组=0(root)
 
vgroups命令
     ■ 用途:查询用户所属的组
     ■ 格式:groups  [用户名]
[root@sky ~]# groups root
root : root
 
vfinger命令
     ■ 用途:查询用户帐号的详细信息
     ■ 格式:finger  [用户名]
[root@sky ~]# finger root
Login: root                     Name: root
Directory: /root                       Shell: /bin/bash
On since 一 5月 25 10:01 (CST) on pts/0 from 172.16.1.22
New mail received 一 5月 25 11:41 2015 (CST)
     Unread since 五 5月 22 17:23 2015 (CST)
No Plan.
 
vusers、w 、who命令
     ■ 用途:查询已登录到主机的用户信息
[root@sky ~]# w
 14:21:38 up  3:47,  1 user,  load average: 0.08, 0.02, 0.01
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    172.16.1.22      10:01    0.00s  0.28s  0.07s w
 
 
2.管理目录和文件的属性
2.1 查看目录和文件的属性
v访问权限
     ■ 读取r:允许查看文件内容、显示目录列表
     ■ 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
     ■ 可执行x:允许运行程序、切换目录
v归属(所有权)
     ■ 属主:拥有该文件或目录的用户帐号
     ■ 属组:拥有该文件或目录的组帐号
 
查看文件/目录的权限和归属
[root@localhost ~]# ls -l install.log
-rw-r--r--   1    root    root    34298    04-02   00:23    install.log
“-rw-r—r--”部分的第一个字符表示文件类型,可以是d(目录)、b(块设备文件)、c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等
其余部分指定了文件的访问权限
在表示属主、属组内用户或其他用户对该文件的访问权限时,主要使用了四种不同的权限字符: r    可读 ;w   可写 ;x   可执行 ;-   无权限
r、w、x、- 权限字符还可分别表示为8进制数字4、2、1、0
 
2.2 设置目录和文件的权限
设置文件和目录的权限——chmod
vchmod命令
     ■ 格式1:chmod   [ugoa]  [+-=]  [rwx]  文件或目录...
u、g、o、a 分别表示属主、属组、其他用户、所有用户 
+、-、= 分别表示增加、去除、设置权限
     ■ 格式2:chmod 755 文件或目录...
v常用命令选项
     ■ -R:递归修改指定目录下所有子项的全新
 
2.3 设置目录和文件的归宿
设置文件和目录的归属——chown
vchown命令
     ■ 格式:chown  属主   文件或目录
                chown  :属组  文件或目录
                chown  属主:属组  文件或目录
v常用命令选项
     ■ -R:递归修改指定目录下所有文件、子目录的归属
 
 





posted @ 2015-05-26 19:30  Hello-Sky  阅读(686)  评论(0编辑  收藏  举报