Linux账号管理与ACL权限设定
3010 点击·0 回帖
![]() | ![]() | |
![]() | Linux账号管理与ACL权限设定 1 Linux的账号与群组 1.1UID和GID UID:User ID;GID:GroupID; 一个文件的权限,靠UID,GID来识别,UID与账号之间的对应关系存储在/etc/passwd里面 1.2/etc/passwd结构 $ head -n 4 /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh $cat/etc/passwd | grepminix007 minix007:x:1000:1000:minix007,,,:/home/minix007:/bin/bash 账号名称 密码(此字段为x,真正的密码放在/etc/shadow里了) UID 0:系统管理员 1~499:系统账号 500~65535:可登入账号 GID 用户信息说明 家目录 Shell 1.3/etc/shadow结构 # cat /etc/shadow | grepminix007 minix007:$6$Uk9abd2a7z.qWqqW0CNBsqeZvpx9UcyQ1:15597:0:99999:7::: 账号名称 加密后的密码 最近修改密码的日期 密码不可变动的天数 密码需要变动的天数 密码需要变动前的警告天数 密码过期后账号宽限天数 账号失效日期 保留 1.4/etc/group结构 $ head -n 4/etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: 组名 组密码 GID 此组支持的账号 1.5群组的一些概念 初始群组:账号一登录就成为此群组成员,这个属性在/etc/passwd里的GID确定 非初始群组:除了初始群组外,一个账号还会属于其它群组,这就是由/etc/group里此组支持的账号确定 有效群组:账号所属群组中的一个,如果账号新建一个文件,这个文件的群组就由当前账号的有效群组确定 groups:通过这个指令可以知道当前用户账号属于哪些群组,第一个群组就是有效群组 newgrp: 有效群组的切换 1.6/etc/gshadow结构 # head -n 4/etc/gshadow root:*:: daemon:*:: bin:*:: sys:*:: 组名 密码 群组管理员账号 该群组所属账号 2账号管理 2.1 新建账号 useradd $useradd minix006#按默认设置建立一个普通账号 $useradd -r matrix007 #建立一个系统账号 $useradd -D#显示useradd默认值 $ useradd-D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no 2.2修改密码 passwd #passwd minix006 # root账号修改其它账号密码 $passwd #自己修改自己密码 $passwd -S # 列出密码参数(修改日期,失效日期etc.) usermod #usermod -e "2013-10-10" minix006 #设置minix006账号的失效日期 2.3忘记密码 普通用户忘记密码:使用root账号登录,再用passwd命令处理 root用户忘记:LiveCD开机,挂载根目录,修改/etc/passwd,将root密码字段清空,再开机后root无须密码即可登录,再用passwd修改root密码。 2.4修改账号数据 userdel:删除账号数据 chsh:修改shell 2.5查阅账号信息 finger :查阅/etc/passwd里的信息 id :查阅UID,GID信息 2.6群组管理 新建群组:groupadd 修改群组信息:groupmod 删除群组信息:groupdel 建立群组管理员:gpasswd 3主机的细部权限规划:ACL的使用 3.1 什么是ACL ACL是Access ControlList的缩写,主要的目的是提供传统的owner,group,others的read,write,execute权限之外的细部权限设定,ACL可以针对单一使用者,单一档案或者目录来进行r,w,x权限的设定,对于需要 有特殊权限的使用状况非常有帮助。 3.2ACL的启用 查看ACL是否启用 $ mount /dev/sda7 on / type ext4(rw,errors=remount-ro) ... /dev/sda10 on /home type ext4(rw) ... 括号里没有显示acl,说明acl没有启用 ACL的启用 # mount -oremount,acl /home 这样,再查看ACL是否启用时,就会得到 $ mount | grephome /dev/sda10 on /home type ext4 (rw,acl) 3.3ACL的设定 getfacl $ touch testacl $ ll testacl -rw-rw-r-- 1 minix007 minix007 0 2月 4 16:42 testacl $ getfacltestacl # file: testacl # owner: minix007 # group:minix007 user::rw- group::rw- other::r-- setfacl 为特定用户设置权限 $ll testacl -rw-rw-r-- 1 minix007 minix007 0 2月 4 16:42testacl # setfacl -m u:minix007:rx testacl $ ll testacl -rw-rwxr--+ 1 minix007 minix007 0 2月 4 16:42testacl* 可以看到,testacl的权限信息已经和以前不同了 4 使用者身份切换 4.1为什么要身份切换 平时用普通账号,有特别需要再用root,可以避免对系统破坏 运行软件时,为此软件设置一个低权限账号,这样即使这个软件被攻破,也不至于影响整个系统 4.2身份切换方法 su:任何身份切换 完整切换到新身份:su -username 只用root执行一次命令:su–c "指令串" 由root切换到其它使用者时,无需密码 sudo 5用户的特殊shell与PAM模块 5.1特殊的shell,/sbin/nologin nologin是一个特殊的shell,如果一个账号的shell是nologin,那么它是无法通过shell登录的,但是它可以使用系统的资源,这样就限制了这个账号使用shell的权利。因为有些账号是不需要使用shell的,分给它们会让系统 陷入危险。 5.2 PAM 一部主机上可能很多地方都需要验证,他们有着不同的验证机制,有的时候这可能造成一些混乱,比如一致性问题,PAM是一套应用程序编程接口,他提供了一系列验证机制,只要使用者将验证需要告诉PAM, PAM就能返回验证的结果。 5.3passwd工作原理 用户使用passwd程序,输入密码 passwd调用PAM模块验证 PAM模块到/etc/pam.d/查找与passwd同名配置文件 根据配置文件的设定,引用PAM模块验证分析 将验证结果返回给passwd passwd根据结果决定下面的动作 6Linux主机上用户讯息传递 who :目录登录到系统的用户 $ who minix007 tty7 2013-02-04 14:52 minix007 pts/2 2013-02-04 15:15(:0.0) lastlog:所有账户最后登录时间 使用者交谈:write,mesg,mail | |
![]() | ![]() |