centos下的用户权限

144 阅读3分钟

centos下的用户权限

一、日志操作步骤

1. 编辑/etc/profile

注意:分割线后注释掉

vim /etc/profile

在文件结尾插入如下代码

m_path1=/data/.log/script/$USER-date +%F-%H:%M.time

m_path2=/data/.log/script/$USER-date +%F-%H:%M.his

exec script -t 2>mpath1afqm_path1 -a -f -q m_path2

:wq 保存文件。

mkdir -p /data/.log/script

chmod 777 /data/.log/script

source /etc/profile

然后source /etc/profile生效配置文件。

————————————分割线———————————

vim /etc/profile

在文件结尾插入如下代码

history

USER=whoami

USER_IP=who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'

if [ "$USER_IP" = "" ]; then

USER_IP=hostname

fi

if [ ! -d /var/log/history ]; then

mkdir /var/log/history

chmod 777 /var/log/history

fi

if [ ! -d /var/log/history/${LOGNAME} ]; then

mkdir /var/log/history/${LOGNAME}

chmod 300 /var/log/history/${LOGNAME}

fi

export HISTSIZE=4096

DT=date +"%Y%m%d_%H:%M:%S"

export HISTFILE="/var/log/history/LOGNAME/{LOGNAME}/{USER}@{USER_IP}_DT"

chmod 600 /var/log/history/${LOGNAME}/history 2>/dev/null

:wq 保存文件。然后source /etc/profile生效配置文件。

2.生效后第一次需要root用户退出重进一下才能看到产生的日志文件

二、添加用户

以raines为例

1,创建用户 : useradd 用户名

useradd raines

2,给用户设置密码 : passwd 用户名

passwd raines

3,创建文件夹 : mkdir 文件夹名

mkdir /develop

4,创建用户组 : groupadd 用户组名

groupadd developgroup

5,将文件夹授权给用户组 (-R代表递归处理,将指定目录下的所有文件及子目录一并处理 ): chgrp -R 用户组名 **文件夹名

chgrp -R developgroup /develop

6,授权用户组写入权限:chmod -R 775 文件夹名称

chmod -R 775 /develop

7,将用户归属到某个用户组: usermod -G 附加组1, 附加组2..., 附加组N 用户名

usermod -G developgroup raines

8,强制用户在下一次登录时更改密码

chage --lastday 0 raines

三、设置用户权限

修改/etc/pam.d/su配置

//打开这个配置文件,找到如下行,并将行首”#”去掉,保存文件

auth required pam_wheel.so use_uid

修改/etc/login.defs文件

vi /etc/login.defs

//在文件末尾添加 SU_WHEEL_ONLY yes 保存文件

进入/etc/sudoers.d

vim /etc/sudoers.d/developgroup

%developgroup ALL=(ALL) NOPASSWD:ALL,!/usr/passwd [A Za z]*,!/usr/passwd root,!/bin/su

四、添加管理员权限用户

以添加用户北京为例

用户名:beijing

密码:beijing@L123.

具体命令

useradd beijing

passwd beijing

usermod -G developgroup beijing

chage --lastday 0 beijing

脚本

创建user.sh文件,添加如下内容

user=$1

useradd "${user}"

echo "user@L123."passwdstdin"{user}@L123." |passwd --stdin "{user}"

usermod -G developgroup "${user}"

chage --lastday 0 "${user}"

以创建用户beijing为例,sh user.sh beijing即创建成功。

五、用户使用

用户登录后,执行需要管理员权限的命令时,需要sudo 命令名或者sudo -i 命令名

为何使用sudo -i呢?使用sudo的时候,有的命令找不到环境变量,使用-i后跟命令后正常。

其他

sudo找不到命令错误解决(sudo无环境变量)

修改sudoers和/etc/profile文件

注意:此方法会使用alias命令用于设置指令的别名,导致使用sudo -h等参数命令时会提示命令错误

vim /etc/sudoers

//将其中Defaults env_reset改成Defaults !env_reset(取消掉对PATH变量的重置)。

vim /etc/profile

//在/etc/profile最后添加如下

alias sudo='sudo env PATH=$PATH'

//最后,使配置文件生效

source /etc/profile

用户单独权限

以raines用户为例

修改 /etc/sudoers 文件

root ALL=(ALL) ALL

raines ALL=(root) NOPASSWD:ALL,!/usr/passwd [A Za z]*,!/usr/passwd root,!/bin/su

%developgroup ALL=(ALL) NOPASSWD:ALL,!/usr/passwd [A Za z]*,!/usr/passwd root,!/bin/su

保存退出,一般得wq!,强制保存退出。

echo “新密码”|passwd --stdin 用户名

更新用户密码信息,适用于shell脚本

平时passwd hehe

[root@test etc]# echo “qwert” | passwd --stdin hehe

更改用户 hehe 的密码 。

passwd:所有的身份验证令牌已经成功更新。

查看centos中的用户和用户组

1、用户列表文件:/etc/passwd

2、用户组列表文件:/etc/group

3、查看系统中有哪些用户:

cut -d : -f 1 /etc/passwd

4、查看可以登录系统的用户:

cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1

强制用户在下一次登录时更改密码

背景

强制用户在下一次登录时更改密码可以使用chage命令

chage --lastday 0 用户名

原理:通过将用户的密码过期时间设置为 0 来表示密码已经过期,需要在用户再次访问系统之前立即更改。

或者chage --lastday 1970-01-01 用户名