Linux账号管理与ACL权限设定



Linux账号管理与ACL权限设定。Linux账号管理与ACL权限设定

Linux的账号与群组————————————-

每个档案都有使用者ID(UID)和群组ID(GID)

/etc/passwd 结构——

每一行代表一个账号,每个账号用[:]隔开成七部分,分别是1.账号名称,2.密码,3.UID,4.GID,5.用户信息说明,6.根目录,7.Shell    UID的限制如下:

/etc/shadow 结构

该文件用 [:] 分为九个字段,分别是:

1.账号名称,2.密码(只有root可以修改),3.最近更改密码的日期,4.密码不可被更改的天数,5.密码需要重新变更的天数,6.密码需要变更期限前的警告天数,7.密码过期后的账号宽限时间,8.账号失效日期,9.保留

Linux系统时间是从1970年1月1日累加的,通过天数计算时间

—————————————————————–

/etc/group 结构

分为四个字段,分别是:1.组名,2.群组密码,3.GID,4.此群组支持的账号名称

一个用户可以属于多个群组,所以分有效群组与初始群组:

groups:可以观察有效(第一个)和支持群组

newgrp可以在支持群组中切换有效群组

/etc/gshadow 结构

分为四个字段,分别是:1.组名,2.密码栏(开头为!表示无合法密码,也无群组管理员),3.群组管理员的账号,4.该群组的所属账号

—————————————————————-

账号管理

useradd——新建用户,密码的给予使用passwd指令

 

useradd -D可以调用查看useradd的默认值

passwd——设定密码

chage——显示密码参数

chage可以强制用户第一次登陆时必须修改密码才能使用系统资源,-d 后面指定天数为0

usermod——微调账号相关数据

userdel——删除用户相关数据

用户功能—————————————

finger——查阅用户相关信息

chfn——更改个人信息

chsh——更改个人信息

id——查询某人或自己的相关UID/GID等信息

groupadd——新增群组

groupmod——修改group相关参数

groupdel——删除群组

gpasswd——群组管理员

———————————————————————-

主机的细节权限规划

ACL(Access Control List),目的是提供传统的owner,group,others的读写执行之外的权限。

如果系统没有(一般都会)默认支持ACL,可以按如下启动

ACL的设定技巧:getfacl取得setfacl设定

setfacl ——设定某个目录/文件的ACL规范


getfacl ——取得某个文件/目录的ACL设定项目

用法与setfacl基本相同

———————————————————————-

用户身份切换

su——最简单的身份切换,需要新切换的用户密码

su的用法总结:

1.若要完整的切换到新用户的环境,必须要使用【su -username】或者【su -| username】这才会连同PATH/USER/MAIL 等变量都转成新用户的环境。

2.如果仅想要执行一次root的指令,可以利用【su –c”指令串” 】的方式来处理

3.使用root切换成为任何使用者时,并不需要输入新用户的密码

sudo——仅需要自己的密码不需要新切换的用户密码

sudo默认只有root能使用,它执行的重点在于【能否使用sudo必须要看 /etc/sudoers的设定值,可使用sudo的用户是通过输入自己的密码来执行后续的指令串】

visudo的设定方式有:用vi将sudoers文件调用出来修改

1.单一用户可进行root所有指令,与sudoers档案语法

默认是root有这权限,你可以增加自己想要的用户的权限。(76行)

 

 2.利用群组以及免密码的功能处理visudo

 3.有限制的指令操作:

限定某些用户只能进行部分系统任务,比如用户只能用passwd指令(如下)帮root修改其他用户的密码,但是肯定不希望普通用户修改root的密码了,所以最好写成

 4.通过别名建立visudo:

一些重复的操作,相当于将这些放到一个组里面,用组名处理这些操作

5.sudo的时间间隔问题:

为了防止其他人使用用户的sudo,所以隔几分钟就要输入密码。

6.sudo搭配su的使用方式:

可以让其他用户输入“ sudo su - ”并且输入自己的密码就变成root身份,这样root密码就不会外流

 ——————————————————————————–

 用户的特殊shell 与PAM模块

特殊的shell,/sbin/nologin

有些shell是即使知道了系统密码,也无法使用bash或其他shell来登录系统。比如一个系统是不需要登录就可以使用的话,就可以拒绝试图用shell登录的用户了。

PAM(嵌入式模块)简介

是一个多个认证集合的应用程序编程接口。用户只需要将当前的认证需求告诉PAM,PAM就会提供结果。

*****这一块挺重要的,但是写起来好繁琐

—————————————————————————–

Linux主机的用户信息传递

查询用户:w, who, last, lastlog(最近登录时间)

用户对话:write, mesg, wall(这三个都是用户在线)

 write对一个用户传播信息,如果不想接受可以写 mesg n,但是root传递过来的指令是无论如何都要接收的,如果又想要看被自己拒绝的信息,只要下达mesg y就行了。

wall是广播信息

用户邮件信箱:mail(mailbox一般在/var/spool/mail里面)

收信的话直接用mail就行了,message list比较常见的指令有

————————————————————————–

手动新增用户(不建议)

pwck检查 /etc/passwd 这个账号配置文件

pwconv    将 /etc/passwd内的账号密码移动到 /etc/shadow中

pwunconv   跟上一个相反,不过还会删除 /etc/shadow文件,最好不执行这个指令

chpasswd  读入未加密前的密码,并加密后写入/etc/shadow当中,现在很少用

纯数字账号的手工建立(不建议)

1.建立所需要的群组,2.将/etc/group与/etc/gshadow同步化(grpconv),3.建立账号的各个属性,4.pwconv,5.建立密码,6.建立根目录,7.更改根目录的属性

大量建立账号模板(适用passwd –stdin选项)

http://linux.vbird.org/linux_basic/0410accountmanager/account1.sh