Linux用户深度管理

每个文件和进程,都需要对应一个用户和用户组。

linux系统是通过UID和GID来是识别用户和组的。

其中用户名等同于人名(人类识别),UID和GID等同于身份证号(系统识别)。

linux管理员:root

用户和组的关系

一对一,一对多,多对一,多对多

用户分类

超级用户:UID=0 root

普通用户:UID>=500 由超级用户或者具有超级用户权限的用户创建的用户

虚拟用户:UID={1,499}存在满足文件或者服务启动的需要,一般不能登录。

每个文件和进程,都需要对应一个用户和用户组。

和用户关联的四个文件:

/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow.

用户管理的命令:

useeradd 添加用户

userdel 删除用户

passwd 设置或修改密码 更改/etc/shadow

chage 修改用户密码属性 管理/etc/shadow

usermod 修改用户信息

id 查看用户信息

su 用户角色切换工具

sudo 普通用户不需要root密码就可以执行只有root才能执行相应的命令或具备的目录权限

visudo 配置sudo权限的编辑命令,可以直接vi来编辑/etc/sudoers实现。推荐使用,可以自动检查语法。

groupadd 添加组

groupdel 删除组

groups 查看组信息

whoami 查看当前用户

/etc/skel 目录

/etc/skel 目录是用来存放新用户环境变量的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户家目录下(cp -a /etc/skel/* /home/新用户名/),默认情况下,/etc/skel 目录下的所有文件都是隐藏文件,通过修改添加、删除/etc/skel 目录下的文件,我们可为新用户提供统一的、标准的、初始化用户环境。

/etc/skel 的企业场景作用:

1、可以把通知内容放到skel,让登录人员看

2、统一初始化新用户的环境变量

3、面试题:出现“-bash-4.1$”问题原因及解决方法

原因:家目录环境变量文件丢失。

解决方法:

su - a(a为前面出现问题的用户)

-bash-4.1$ cp /etc/skel/.bash* .

-bash-4.1$ logout

su -

su - a(a为前面出现问题的用户)

/etc/login.defs配置文件

/etc/login.defs文件是用来定义创建用户时需要的一些用户的配置信息。例如创建用户时,是否需要家目录,UID和GID的范围,用户及密码的有效期限每个文件和进程,都需要对应一个用户和用户组。


linux系统是通过UID和GID来是识

每个文件和进程,都需要对应一个用户和用户组。

linux系统是通过UID和GID来是识别用户和组的。

其中用户名等同于人名(人类识别),UID和GID等同于身份证号(系统识别)。

linux管理员:root

用户和组的关系

一对一,一对多,多对一,多对多

用户分类

超级用户:UID=0 root

普通用户:UID>=500 由超级用户或者具有超级用户权限的用户创建的用户

虚拟用户:UID={1,499}存在满足文件或者服务启动的需要,一般不能登录。

每个文件和进程,都需要对应一个用户和用户组。

和用户关联的四个文件:

/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow.

用户管理的命令:

useeradd 添加用户

userdel 删除用户

passwd 设置或修改密码 更改/etc/shadow

chage 修改用户密码属性 管理/etc/shadow

usermod 修改用户信息

id 查看用户信息

su 用户角色切换工具

sudo 普通用户不需要root密码就可以执行只有root才能执行相应的命令或具备的目录权限

visudo 配置sudo权限的编辑命令,可以直接vi来编辑/etc/sudoers实现。推荐使用,可以自动检查语法。

groupadd 添加组

groupdel 删除组

groups 查看组信息

whoami 查看当前用户

/etc/skel 目录

/etc/skel 目录是用来存放新用户环境变量的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户家目录下(cp -a /etc/skel/* /home/新用户名/),默认情况下,/etc/skel 目录下的所有文件都是隐藏文件,通过修改添加、删除/etc/skel 目录下的文件,我们可为新用户提供统一的、标准的、初始化用户环境。

/etc/skel 的企业场景作用:

1、可以把通知内容放到skel,让登录人员看

2、统一初始化新用户的环境变量

3、面试题:出现“-bash-4.1$”问题原因及解决方法

原因:家目录环境变量文件丢失。

解决方法:

su - a(a为前面出现问题的用户)

-bash-4.1$ cp /etc/skel/.bash* .

-bash-4.1$ logout

su -

su - a(a为前面出现问题的用户)

/etc/login.defs配置文件

/etc/login.defs文件是用来定义创建用户时需要的一些用户的配置信息。例如创建用户时,是否需要家目录,UID和GID的范围,用户及密码的有效期限等等。

/etc/default/useradd文件

/etc/default/useradd文件是在使用useradd添加用户时的一个需要调用的默认配置文件,可以使用 user -D 参数 这样的命令格式来修改文件里面的内容。可以通过vi 命令直接编辑。

用户密码管理

1、密码要复杂8位以上(字母数字特殊字符)

2、大的企业用户和密码统一管理(相当于活动目录,openldap)

3、动态密码:动态口令,第三方提供,或自己开发

用户删除管理

一般不能确认用户相关目录有没有重要数据,就不能用-r。

1、vi /etc/passwd然后注释掉用户,观察一个月,这样出问题可以还原,相当于操作前备份。

2、把登录shell改成/sbin/nologin。

3、openldap(类似活动目录)账号统一管理的,ldap库里干掉用户,所有服务器全部都没了。

提示:修改删除必须小心谨慎!

useradd参数

-c comenment 新账号passwd的说明栏

-d home_dir  新账号每次登入是所使用的home_dir。预设值为default_home内login名称,并当成登入时目录名称。

-e expire_date 账号终止日期。日期格式为MM/DD/YY。重点

-f inactive_days账号过期几日后永久停止权限。当值为0时账号则被立即停用。当值为-1时则关闭此功能。

-g initial_group group名称或以数字来做为用户登入起始用户组。用户组名须为系统现有存在的名称。用户组数字也须为系统现有存在的名称。用户组数字也须为系统现有存在的用户组。预设数字为1.

-G group,[...]  定义此用户为不同groups的成员。每个用户组使用“,”分隔。用户组名同-g选项的限制。默认值为用户的起始用户组。重点

-m  用户目录如不存在则自动建立。如使用-k选项,skeleton——dir内的档案将复制至用户目录下,然而在/etc/skel目录下的档案也会复制过去取代。任何在skeleton_dir /etc/skel的目录也相同会在用户目录下意义建立。The-k 同-m不建立目录以及不复制任何档案为预设值。

-M  不建立用户家目录,优先于/etc/login.defs文件的设定。一般创建虚拟用户时不建立家目录,部署服务时需要创建虚拟用户。重点

-n  默认情况用户的用户组与用户的名称会相同。如果命令加了-n参数,就不会生成和用户同名的用户组了。

-r  此参数是用来建立系统账号。系统账号的UID会比定义在系统档上/etc/login.defs.的UID_MIN来的小。注意useradd此用法所建立的账号不会建立用户家目录,也不会在乎记录在/etc/login,defs.的定义值。如果你想要拥有用户家目录须额外指定-m参数来建立系统账号。这是Red HAT额外增设的选项。

-s shell  用户登入后使用的shell名称。默认值为不填写,这样系统会帮你指定预设的登入shell。

-u uid  用户的ID值。这个值必须是唯一的,除非用-o选项。数字不可为负值。

passwd 参数

-f , --force force operation

你可能感兴趣的:(Linux,linux)