Linux命令:账户与安全

1.账户与组的概念

Linux系统对帐号与组的管理通过ID号实现,在登陆系统时,输入的用户名与密码,会自动将用户名转化为ID号判断账号是否存在,然后对比密码是否匹配。
Linux中,用户ID号称作UID,组ID号称作GID。UID=0代表超级管理员,即root账号,1~499间的ID号系统会预留,我们创建的普通用户的UID号从500起,我创建的student用户的UID为1000。
Linux中的组分为基本组和附加组,一个用户同一时刻仅可加入一个基本组,但可同时加入多个附加组,默认创建用户是,会自动创建同名的组

2.创建账户及组

  • useradd 创建新账号
    用法:useradd [选项] 用户名称
    -c 设置账号描述信息,一般会账号全称.
    -d 设置家目录,默认/home/用户名
    -e 设置账户失效日期,格式YYYY-MM-DD
    -g 设置账户基本组
    -G 设置账户的附加组,多个附加组间用逗号隔开
    -M 不能创建账户家目录,一般和-s结合使用
    -s 设置账户的登陆shell,一般默认hu-s
    -u 指定账户UID
    例:$ useradd student #创建普通账户student,以及对应组
    $ useradd -c administrator -d /home/adimin -e 2013-12-24 \ -g root -G bin, adm, mail admin
    创建普通用户,名为admin,全名为administrator,账户家目录为/home/admin,账户失效日期2017-12-24,账户基本组为root,附加组为bin、adm、mail 。

  • groupadd 创建组账户
    用法:groupadd [选项] 组名称
    -g 设置组ID号
    $ groupadd tom
    $ groupadd -g 1000 jerry #创建GID为1000的组jerry.

  • id 显示账户及组信息
    $ id root # 查看root账户及相关组信息

3.修改账户及组

  • passwd 更新账号认证信息
    用法:passwd [选项] [账户名称]
    -l 锁定账户,仅root可用
    –stdin 从文件或管道读取密码
    -u 解锁账户
    -d 快速清空账户密码,仅root可用
    $ passwd tom #指定修改tom的密码
    $ echo “qwer0987” | passwd --stdin tom #设置tom的密码为qwer0987
    $ pass -l tom #锁定账户tom

  • usermod 修改账户信息
    用法:usermod [选项] 账户名称
    -d 修改账户家目录
    -e 修改账户失效日期
    -g 修改账户所属基本组
    -G 修改账户所属附加组
    -s 修改账户登录Shell
    -u 修改账户UID
    $ usermod -d /home/tomcat tom #修改tom的家目录,/home/tomcat目录必须存在
    $ usermod -g mail tom #修改账户tom的基本组为mail
    $ usermod -u 1001 tom #修改账户tom的UID为1001

3.删除账户及组

userdel 删除账户及相关文件
用法:underdel [选项] 账户名称
-r 删除账户及相关文件
$ userdel tom
$ userdel -r tom #删除账户tom,并删除相应家目录

groupdel 删除组账户
$ groupdel jerry #删除组jerry.

4.账户与组文件解析

1.账户信息被保存在/etc/passwd文件中,cat /etc/passwd查看:
在这里插入图片描述
文件以“:”为分隔符,1~4列分别表示账户名称、密码占位符、账户UID、GID,第5列为账户附加基本信息,一般存储账户名全称,联系方式等,第6列为账户家目录位置,第7列为账户登录Shell,/bin/bash为可登录系统Shell,/sbin/nologin表示无法登陆。
2.账户密码信息被保存在/etc/shadow文件中,cat /etc/shadow

文件以“:”为分隔符,1~9列分别表示账户名称、密码、上次修改密码距1970/01/01日有多少天、密码最短有效天数(0代表无限)、密码最长有效天数(默认99999天,即永久)、过期前警告天数(默认7天)、密码过期后宽限天数、账户失效日期、保留未使用

3.组账户信息文件,cat /etc/group查看

文件以“:”为分隔符,1~4列分别表示组账户名称、密码占位符、GID、组成员信息(这里仅显示附加成员)

4.组账户密码文件
文件以“:”为分隔符,1~4列分别为组账号名称、组密码、组管理员、组成员
<gpasswd 组名>为组设置初始密码 <gpasswd -A 账户名称 组账户名称>为组添加管理员
$ gpasswd admin #设置组密码
$ gpasswd -A mail admin #将mail账户设置为组admin的管理员

4.文件及目录权限

Linux权限主要分为读、写、执行三种控制,ls -l查看文件或目录时,会显示为r ,w,x
rwxrwxrwx表示文档的所有者(user)、组(group)、其他账户(other)权限均为rwx,rwxr–r--表示文档所有者权限为读写执行,所属组权限为只读

  • chmod 改变文件或目录权限
    用法:chmod [选项] 权限 文件及目录
    –reference=RFILE #根据参考问但设置权限
    -R #递归将权限应用于所有的子目录与文件
    chmod在命令参数中,u代表所有者,g代表所属组,o代表其他用户,a代表所有人
    $ ls -l westos.all
    $ chmod u=rwx,g=rwx,o=rwx westos.all
    $ chmod a=rw westos.all
    通过+/-权限方式修改权限
    $ chmod g-x,o-wx westos.all
    数字方式修改权限 r=4,w=2,x=1,注意为rwx的数字之和为一组
    $ chmod 700 westos.all # 修改文件权限为rwx------
    $ chmod 644 westos.all # 修改文件权限为rw-r–r--
    $ chmod 755 westos.all # 修改文件权限为rwxr-xr-x
    以其他文档作为参考修改权限
    $ chmod --reference=install.log.syslog install.log #以install.log.syslog为标准修改install.log

chown 修改文件或目录的所有者与所属组
用法: chown [选项] [所有者][:[所属组]] 文件或目录
-R #递归将权限应用于所有的子目录与文件
$ chown user2:mail install #修改文件的所有者为user2,所属组为mail
$chown :root install #仅修改文件所属组为root
$chown root install #仅修改文件所属者为root

猜你喜欢

转载自blog.csdn.net/qq_35197351/article/details/82868085