Linux系统 账号管理

  1. UID
    0 系统管理员
    1~499 系统账号(/sbin/nologin; 1-99 属于各个distributions创建,100~499用户自行创建的系统账号)
    500~65535 一般账号

  2. GID

切换有效组ID

newgrp [group]

groups <=> id -Gn

创建系统账号

useradd -r sys

新建用户默认值

useradd -D

/etc/login.defs

echo “Abc1234%” | passwd --stdin scu

passwd -S scu
passwd -l scu
passwd -u scu

chage -l scu
chsh -s /bin/bash scu

ACL: Access Control List
setfacl -m u:scu:rwx acl.txt
setfacl -m u::rx acl.txt

getfacl acl.txt

setfacl -m g:dba:rx acl.txt

setfacl -m m:r acl.txt # mask, permission=mask&user

setfacl -m d:u:scu:rx acl_dir # default, 目录下新创建的文件,与父目录的acl一致

setfacl -x u:scu acl_dir # --remove=acl

setfacl -b acl_dir # --remove-all

groupadd project
usermod -G project scu
usermod -G project bmp

mkdir -p /home/project
chgrp project /home/project
chmod 770 /home/project
chmod 2770 /home/project

锁定和解锁用户

usermod -L developer
usermod -U developer

查看密码参数,另外,可使用该命令去改变该账号的各种属性

chage -l developer

当前系统上所有支持的shell

chsh -l

ACL, Access Control List

=====================================
关闭默认密码和用户设置:
#Defaults targetpw
#ALL ALL=(ALL) ALL

root用户:
sudo -u sshd touch /tmp/mysshd

sudo -u scu sh -c “mkdir ~scu/www; cd ~scu/www; echo ‘This is the index.html’ > index.html”

普通用户:
scu ALL=(ALL) ALL # need password
scu ALL=(ALL) NOPASSWD: ALL # no need password

sudo tail -n 1 /etc/shadow

usermod -G wheel scu
%wheel ALL=(ALL) ALL # need password
%wheel ALL=(ALL) NOPASSWD: ALL # no need password

scu ALL=(root) /usr/bin/passwd

exclude root

scu ALL=(root) !/usr/bin/passwd,/usr/bin/passwd [a-zA-Z_]*,!/usr/bin/passwd root

alias

User_Alias ADMPW = scu, user1, user2
Cmnd_Alias ADMCOM = !/usr/bin/passwd,/usr/bin/passwd [a-zA-Z_]*,!/usr/bin/passwd root

ADMPW ALL=(root) ADMCOM

sudo时间间隔:5 minutes

sudo & su

User_Alias ADMIN = scu, user1, user2
ADMIN ALL=(root) /bin/su -

==============================================

/sbin/nologin: 是用户无效

strings /sbin/nologin

/etc/nologin.txt
This account is currently not available.

vi /etc/nologin.txt
chmod 644 /etc/nologin.txt

==============================================
PAM: Pluggable Authentication Modules 嵌入式模块(/etc/pam.d)
是一套独立的API,提供一连串验证机制,使用者将验证请求发给PAM,随后PAM将验证结果返回给使用者

cat /etc/pam.d/passwd
#%PAM-1.0
auth include common-auth
account include common-account
password include common-password
session include common-session

  1. 验证类别 Type
    auth
    account
    password
    session

  2. 控制标志 Control-Flag
    required: 失败继续后续验证流程
    requisite:失败终止后续流程
    sufficient:成功终止后续流程
    optional:只显示信息,不做验证

/etc/pam.d 每个程序的PAM配置文件目录
/lib/security PAM模块文件目录
/etc/security 其他PAM环境配置文件目录

pam_securetty.so 限制root用户只能从安全的终端登录(/etc/securetty)
pam_nologin.so 限制普通用户登录主机(/etc/nologin,这个文件存在,则所有普通用户无法再登录)
pam_selinux.so
pam_console.so 特殊终端登录
pam_loginuid.so 限制系统用户和普通用户的UID
pam_env.so 环境变量配置 /etc/security/pam_env.conf
pam_unix.so 认证授权等(/etc/default/passwd & /etc/login.defs)
pam_cracklib.so 校验口令强度
pam_limits.so /etc/security/limits.conf

root无法telnet,却可以ssh?
telnet会引用login的PAM模块,而login验证阶段会有(/etc/securetty)限制!远程连接属于pts/n动态终端设备,并未写入/etc/securetty,因此root无法以telnet登录远程主机。
ssh使用/etc/pam.d/sshd这个模块,该模块验证阶段未加入pam_securetty,无/etc/securetty限制,可正常登录

limits.conf

scu用户只能创建最大100M文件,超过90M告警

vi /etc/security/limits.conf
scu soft fsize 90000
scu hard fsize 100000

dd if=/dev/zero of=./mytest2 bs=1M count=95
Filesize limit exceeded (core dumped)

ulimit -a
file size (blocks, -f) 90000


last
lastlog

echo “scu:scu” | chpasswd -c blowfish
echo “scu” | passwd --stdin scu

Linux 操作系统上面,关于账号与群组,其实记录的是 UID/GID 的数字而已;
使用者的账号/群组与 UID/GID 的对应,参考 /etc/passwd 及 /etc/group 两个文件
/etc/passwd 文件结构以冒号隔开,共分为七个字段,分别是『账号名称、口令、UID、GID、全名、家目录、shell』
UID 只有 0 与非为 0 两种,非为 0 则为一般账号。一般账号又分为系统账号 (1~499) 即可登陆者账号 (大于 500)
账号的口令已经移动到 /etc/shadow 文件中,该文件权限为仅有 root 可以更动。该文件分为九个字段,内容为『 账号名称、加密口令、口令更动日期、口令最小可变动日期、口令最大需变动日期、口令过期前警告日数、口令失效天数、 账号失效日、保留未使用』
使用者可以支持多个群组,其中在新建文件时会影响新文件群组者,为有效群组。而写入 /etc/passwd 的第四个字段者, 称为初始群组。
与使用者创建、更改参数、删除有关的命令为:useradd, usermod, userdel等,口令创建则为 passwd;
与群组创建、修改、删除有关的命令为:groupadd, groupmod, groupdel 等;
群组的观察与有效群组的切换分别为:groups 及 newgrp 命令;
useradd 命令作用参考的文件有: /etc/default/useradd, /etc/login.defs, /etc/skel/ 等等
观察用户详细的口令参数,可以使用『 chage -l 账号 』来处理;
用户自行修改参数的命令有: chsh, chfn 等,观察命令则有: id, finger 等
ACL 可进行单一个人或群组的权限管理,但 ACL 的启动需要有文件系统的支持;
ACL 的配置可使用 setfacl ,查阅则使用 getfacl ;
身份切换可使用 su ,亦可使用 sudo ,但使用 sudo 者,必须先以 visudo 配置可使用的命令;
PAM 模块可进行某些程序的验证程序!与 PAM 模块有关的配置文件位于 /etc/pam.d/* 及 /etc/security/*
系统上面账号登陆情况的查询,可使用 w, who, last, lastlog 等;
在线与使用者交谈可使用 write, wall,脱机状态下可使用 mail 传送邮件!

root 的 UID 与 GID 是多少?而基于这个理由,我要让 test 这个账号具有 root 的权限,应该怎么作?
root 的 UID 与 GID 均为 0 ,所以要让 test 变成 root 的权限,那么就将 /etc/passwd 里面, test 的 UID 与 GID 字段变成 0 即可!
假设我是一个系统管理员,我有一个用户最近不乖,所以我想暂时将他的账号停掉, 让他近期无法进行任何动作,等到未来他乖一点之后,我再将他的账号激活,请问:我可以怎么作比较好??
由于这个账号是暂时失效的,所以不能使用 userdel 来删除,否则很麻烦!那么应该如何配置呢?再回去瞧一瞧 /etc/shadow 的架构,可以知道有这几个可使用的方法:
将 /etc/passwd 的 shell 字段写成 /sbin/nologin ,即可让该账号暂时无法登陆主机;
将 /etc/shadow 内的口令字段,添加一个 * 号在最前面,这样该账号亦无法登陆!
将 /etc/shadow 的第八个字段关于账号取消日期的那个,配置小于目前日期的数字,那么他就无法登陆系统了!
我在使用 useradd 的时候,新增的账号里面的 UID, GID 还有其他相关的口令控制,都是在哪几个文件里面配置的?
在 /etc/login.defs 还有 /etc/default/useradd 里面规定好的!
我希望我在配置每个账号的时候( 使用 useradd ),默认情况中,他们的家目录就含有一个名称为 www 的子目录,我应该怎么作比较好?
由于使用 useradd 的时候,会自动以 /etc/skel 做为默认的家目录,所以,我可以在 /etc/skel 里面新添加一个名称为 www 的目录即可!
简单说明系统账号与一般用户账号的差别?
一般而言,为了让系统能够顺利以较小的权限运行,系统会有很多账号, 例如 mail, bin, adm 等等。而为了确保这些账号能够在系统上面具有独一无二的权限, 一般来说 Linux 都会保留一些 UID 给系统使用。在 CentOS 5.x 上面,小于 500 以下的账号 (UID) 即是所谓的 System account。
简单说明,为何 CentOS 5.x 创建使用者时,他会主动的帮使用者创建一个群组,而不是使用 /etc/default/useradd 的配置?
不同的 linux distributions 对于使用者 group 的创建机制并不相同。主要的机制分为:
Public group schemes: 用户将会直接给予一个系统指定的群组,一般来说即是 users , 可以 SuSE Server 9 为代表;
Private group schemes: 系统会创建一个与账号一样的组名!以 CentOS 5.x 为例!
如何创建一个使用者名称 alex, 他所属群组为 alexgroup, 预计使用 csh, 他的全名为 “Alex Tsai”, 且他还得要加入 users 群组当中!
groupadd alexgroup
useradd -c “Alex Tsai” -g alexgroup -G users -m alex
务必先创建群组,才能够创建使用者喔!
由于种种因素,导致你的用户家目录以后都需要被放置到 /account 这个目录下。 请问,我该如何作,可以让使用 useradd 时,默认的家目录就指向 /account ?
最简单的方法,编辑 /etc/default/useradd ,将里头的 HOME=/home 改成 HOME=/account 即可。
我想要让 dmtsai 这个使用者,加入 vbird1, vbird2, vbird3 这三个群组,且不影响 dmtsai 原本已经支持的次要群组时,该如何动作?
usermod -a -G vbird1,vbird2,vbird3 dmtsai

查询账号信息

finger [-s] developer

  1. 欢迎信息

系统欢迎信息:

cat /etc/issue

登入后的欢迎信息:

cat /etc/motd

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值