关于系统账户

在生产环境中使用root用户运行web站点是一件极为不安全的,所以我们需要使用非root账户来运行服务程序。这里要阐述下linux关于用户和组的操作命令,已经一些关于用户和组的文件。

 

  • useradd

  • userdel

  • usermod

  • chsh

  • chfn

  • id

  • chage

命令:useradd

功能:添加系统账户

用法:useradd [options] USERNAME

                     -u NUMBER                 修改UID(0=root,系统用户1-499,普通用户 >=500)

                     -g NUMBER(GID)      指定基本组ID,必须存在

                     -G Number(GID)       指定附加组ID,必须存在

                     -c Comment                 指定注视信息

                     -d PATH                        指定家目录

                     -ppassword                 制定账户密码

                     -s SHELL_PATH                     指定shell(必须是/etc/shells的shell)

                     -m   PATH                     强制创建家目录(一般和-k(复制环境变量文件)一起使用,/etc/skel/).

                     -M                               不创建家目录(/etc/login.defs)

                     -r                                 添加系统用户

                     -Z    SE-username         添加selinux系统账户

                     -h                                显示帮助信息

命令:userdel

功能:删除系统账户

用法:userdel [options] USERNAME 

                     -r                               删除家目录

                     -Z    SE-username         删除selinux系统账户

                     -h                                显示帮助信息

命令:id

功能:查看账户信息

用法:id  [options]USERNAME                  查看帐户属性信息

                     -u                                查看uid

                     -g                                查看基本组

                     -G                                查看附加组

                     -Z                                查看属于用户的安全content

                     --help                          查看帮助

命名:usermod

功能:修改账户信息

用法:usermod 和useradd几乎一样,特别说明如下。

                     -G NUMBER(GID)      会覆盖原先的附加组,可以使用-a来追加附加组

                     -d PATH                        修改家目录,如需将原来的文件移动到新的家目录中,附加使用-m

                     -s SHELL_PATH                     修改SHELL

                     -ppassword                 修改账户密码

                     -l LOGIN_NAME            修改登录名

                     -e YYYY-MM-DD           过期时间

                     -L USERNAME              锁定账号

                     -U USERNAME                     解锁账号

命令:chsh

功能:修改用户shell

用法:chsh [options] [USERNAME]

                     -sshell                         给用户指定shell

                     --list-shells                   查看可用shell,内容与/etc/shells一致

                     --help                          查看帮助

命令:chfn

功能:修改用户finger信息(注释信息)

用法:chfn [options] USERNAME

                     -f full-name                  注释全名

                     -o office                       注释办公信息

                     -p office-phone             注释办公电话

                     -h home-phone            注释家庭电话

                     --help                          查看帮助

说明:查看注释信息可以使用figner。

命令:passwd

功能:修改用户密码

用法:passwd [option] [USER_NAME]

                     --stdin                         使用来自管道的字符串作为密码

                     -l                                 锁定帐户

                     -u                                解锁帐户

                     -d                                删除密码

命令:groupadd

功能:添加组

用法:groupadd [options] GROUP_NAME

                     -g GID                          修改GID

                     -n GROUP_NAME          修改祖名

命令:groupdel

功能:删除组

用法:groupdel GROUP_NAME

 

命令:chage

功能:指定密码最后一次修改时间

用法:chage [option] USERNAME

       -d                                最后一次修改时间

       -E                                过期时间

       -I                                 非活动时间

       -m                               最短使用期限

       -M                               最长使用期限

       -w                               警告时间

      

命令:chown

功能:修改属主/属组

用法:chown [option] file/path

       -R                                递归

       --reference=/path//path/

命令:chmod 

功能:修改文件权限

用法:

 

本地账户相关的文件

本地账户信息文件/etc/passwd

我们取出第一行,内容如下。

root:x:0:0:root:/root:/bin/bash

定义如下

Username

Password

UID

GID

GECOS

Home

Shell

用户名

密码,保存到/etc/shadow

用户ID

主组ID

用户注释

家目录

登录后使用的shell

 

密码存储文件/etc/shadow,shadow是有pwconv命令根据/etc/passwd中的数据自动生成的。

我们取出第一行,内如如下:

root:$6$UGALgN1TOHqvfJkK$/nT7s1d1jOiZhWSciO1CMsqcrh0FruXKKD/jEpMi2ezkKq/JsYLyOvonguEv9yBwtSMhJfuJPRcWWSFo6C97k/:16643:0:99999:7:::

定义如下

字段

定义

说明

1

用户名


2

加密的密码

加密后的密码

3

上次密码更改日期

从1970年1月1日开始计算

4

最短密码期限

按天计算,0表示无期限

5

最长密码期限

按天计算,9999表示无期限

6

密码警告期限

按天计算,0表示不警告

7

密码非活动期限

按天计算

8

账户到期时间

从1970年1月1日开始计算

9

保留域


配置示例

创建账户

Shell># useraddd –m webadmin

添加密码,成功后提示如下

Shell># passwd webadmin

Changing password for user webadmin.

New password:

Retype new password:

passwd: all authentication tokens  updated successfully.

验证

Shell>id webadmin

uid=502(webadmin) gid=502(webadmin)  groups=502(webadmin)