用户
用户列表文件:/etc/passwd
用户组列表文件:/etc/group
查看系统中有哪些用户:cut -d : -f 1 /etc/passwd
查看可以登录系统的用户:
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
查看某一用户:w 用户名
查看登录用户:who
查看用户登录历史记录:last
useradd 用户名 添加新用户
usermod 用户名 修改已经存在的用户
userdel -r 用户名 删除用户表示自家目录一起删除。
groupadd 组名 添加新组
groupmod 组名 修改已经存在的组
groupdel 组名 删除已经存在的特定组。
passwd 用户名
passwd -l 用户名 禁止用户账户口令
passwd -S 用户名 表示查看用户账户口令状态
passwd -u 用户名 表示恢复用户账号
passwd -d 用户名 表示删除用户账户口令
chage 命令是保护密码的时效这样可以防止其他人猜测密码的时间。
chage 用户名
参数有 -m days, -M days ,-d days, -I days ,-E date, -W days,-l
例子:#chage -m 2 -M 30 -W ymbest//表示的意思是要求用户ymbest两天内不能更改密码,并且口令最长存活期是30天,并且口令过期5天通知ymbest
更改属主和同组人
有时候还需要更改文件的属主和所属的组。只有文件的属主有权更改其他属主和所属的组,用户可以把属于自己的文件转让给大家。改变文件属主用chown命令
chown [-R] <用户名或组><文件或目录>
chown zh888 files//把文件files属主改成zh888用户。
chown zh888.zh888 files//将文件files的属主和组都改成zh888。
chown -R zh888.zh888 files//将files所有目录和子目录下的所有文件或目录的主和组都改成zh888.
用户可以使用umask命令设置文件默认的生成掩码。默认的生成掩码告诉系统创建一个文件或目录不应该赋予哪些权限。如果用户将umask命令放在环境文件.bash_profile中,就可以控制所有新建的文件和目录的访问权限。
umask [a1a2a3]
a1表示的是不允许属主的权限,a2表示的是不允许同组人的权限,a3代表不允许其他人的权限。
umask 022//表示设置不允许同组用户和其他用户有写的权限。
umask //显示当前的默认生成掩码。
SUID SGID 和sticky-bit
除了一般权限还有特殊的权限存在,一些特殊权限存在特殊的权限,如果用户不需要特殊权限一般不要打开特殊权限,避免安全方面的问题。具体的用法可以百度和google一下。
希望自己整理出来的知识能帮助网友更好的理解centos用户&组权限&添加删除用户等问题。
例子:
新增一个用户 ,并设置密码
useradd ymbest
passwd ymbest
赋予root权限
修改/etc/sudoers 文件,找到下面一行,在下面添加一行,如下所示:
禁止 root 使用 ssh 登入
CentOS 7 默认容许任何帐号透过 ssh 登入,包括 root 和一般帐号,为了不让 root 帐号被黑客暴力入侵,我们必须禁止 root 帐号的 ssh 功能,事实上 root 也没有必要 ssh 登入服务器,因为只要使用 su 或 sudo (当然需要输入 root 的密码) 普通帐号便可以拥有 root 的权限。使用 vim (或任何文本编辑器) 开启 /etc/ssh/sshd_config,在文件末尾寻找 PermitRootLogin yes
修改为 PermitRootLogin no
最后输入以下指令重新启动 sshd: systemctl restart sshd.service
这样黑客要取得 root 的权限,必须破解 root 和一个普通用户的密码,难度增加了。
完成后不要登出系统,使用另一个视窗尝试登入 root 和普通帐号,测试无误便可进行下一步。
使用非常规的 ssh 端口
Ssh 默认使用端口 22,这是在 IANA 注册的官方端口,但没有人说 ssh 不能使用其他端口,很多黑客专门向服务器的 22 端口发动攻击,即使你的服务器固若金汤、牢不可破,但是要系统日以继夜接受攻击,消耗的系统资源(网络、处理器、内存等等)也不会少,何况它是否真的牢不可破还说不定呢!所以有必要让 ssh 使用其他端口,只让有权使用 ssh 的用户知道。
使用 vi (或任何文本编辑器) 开启 /etc/ssh/sshd_config,寻找:
#Port 22
修改为: Port 8888 (测试环境上现在是这个端口)
其值改为任何 1024 – 65535 之间的任何数字
最后输入以下指令重新启动 sshd: systemctl restart sshd.service