与windows系统相比,Linux系统中的用户账号和组账号的作用在本质上是一样的,同样是基于用户的身份来控制资源的访问,只是在表现形式及个别细节方面有部分差异
UID(User Identification)是每一个用户账号的数字形式的身份标记,原则上每一个用户的UID是唯一的,root默认是0,程序用户默认是1-999,普通用户是1000-60000.
在linux系统中用户信息文件被保存在/etc/passwd文件中,在文件中我们可以看到用户的相关信息,但这个文件中并没有用户的密码
我们每创建一个用户,用户信息会自动加入到/etc/passwd文件中,在文件中以冒号为分隔符
第一位代表用户名,
第二位代表密码占位符,
第三位代表用户ID,
第四位代表用户组ID,
第五位代表用户描述信息,
第六位代表用户主目录,
第七位代表用户默认shell。
用户的密码文件在/etc/shadow文件中,可以通过查看命令进行查看
第一位代表用户名,
第二位代表用户密码,如果!!代表用户还没有密码,
第三位代表用户上次修改密码距离1970年1月1日的天数,
第四位代表密码最短有效天数,0为无限制,
第五位代表密码最长有效天数,99999可以理解为无限制,
第六位代表密码到期警告天数默认是7,进行警告后可以使用旧密码,
第七位代表密码宽限期,宽限期内不允许使用旧密码,
第八位代表密码失效日期
useradd命令可以用于添加用户账号,最简单的用法是不添加任何选项,只用用户名作为useradd命令的参数。
useradd命令
useradd -d //指定宿主目录
useradd -u //指定UID多少
useradd -e //指定账户失效时间
useradd -g //指定用户基本组
useradd -G //指定用户附加组,既可以属于用户组也可以同时属于其他
useradd -M //不建立宿主目录
useradd -s //指定登录的shelluser
新建账户后需要为账户设置密码才能正常使用
passwd命令
passwd -d //清空密码
passwd -l //锁定账户
passwd -S //查看账户是否被锁定
passwd -u //解锁用户账户
对于系统中已经存在的用户账号,可以使用usermod命令重新设置属性
usermod命令
usermod -u //修改用户UID
usermod -d //修改用户的宿主目录位置
usermod -e //修改用户账户失效时间 可以YYYY-MM-DD日期
usermod -g //修改用户的基本组名
usermod -G //修改用户的附加组名
usermod -s //指定用户登录的shell
usermod -l //更改用户登录的名称
usermod -L //锁定账户
usermod -U //解锁用户账户
当某个账户不需要再使用的时候,我们就可以进行删除
userdel命令
userdel 账号名
userdel -r //可以同时删除账户宿主目录
新建账户以后。useradd命令会在该用户的宿主目录中建立一些初始配置文件,这些文件来自于账号模板目录“/etc/skel”,基本都是隐藏文件,查看时应该用ls -a。
.bash_logout:每次退出登录时执行
.bash_profile:每次登录时被执行
.bashrc:每次加载/bin/bash程序时执行,优先级更高
对于用户来说,对应组账户可分为基本组(私有组)和附加组(共有组)两种类型。每一个账户可以是多个组账户的成员,但是基本组账号只有一个。
组账号的标识就是GID。
组账户相关的配置文件也有两个,分别存在**/etc/group** 和 /etc/gshadow。前者用于保存组账号名称,GID号,组成员等基本信息,后者用于保存组账号的加密密码字符串等信息(但是很少使用到)。
某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用逗号“,”分隔。
groupadd命令--添加组账号,需要指定GID号
例如
groupadd -g 1000 class //添加一个名为class的组账户,指定GID为1000
groupdel命令--删除组账号
groupdel class //删除组账号class
gpasswd命令--添加、删除、修改组成员
举例说明
gpasswd tom //给tom设置密码
gpasswd -a //添加、设置、删除成员
gpasswd -a tom1 root //正在将用户“tom1”加入到“root”组中
gpasswd -d tom1 root //将用户“tom1”从“root”组中删除
在Linux系统中,可以使用几个常用的命令查询工具直观的查看账户文件信息。
可以查询用户账号的身份标识,快速查看指定用户账号的UID,GID等表示信息。
可以查询指定的账号的登录属性等详细信息,包括登录名称,完整名称,宿主目录,登录shell等。
可以查询当前主机中用户登录的情况,列出登录账号名称,所在终端,登录时间,来源地点等信息。
在Linux文件系统的安全模型中,为系统中的赋予了2个属性,访问权限和文件所有者,简称权限和归属,其中权限包括读取R-4、写入W-2、可执行X-1三种基本类型,归属包括属主、属组。
首先我们使用命令ls -ld /etc /etc/passwd 查看文件权限及归属
普通文件(-): 是记录在存储介质上的ASCII或二进制流。
目录文件(d): 是包含若干个文件和子目录的文件。
设备文件(b,c): 代表连接在系统上的物理设备
字符设备(c):又叫raw设备:读写与存储之间没有任何缓冲,一次读写1byte。
如磁带
块设备(b):读写与存储之间有缓冲,一次读写一个block。如终端或磁盘设备。
符号链接(l) :是指向另一个文件的文件。
读r - 4
允许用户打开、浏览文件内容
写w - 2
允许用户打开、编辑文件
执行x -1
允许用户执行
默认文件权限根据umask值设置(默认为0022)
新文件权限为rw-r-r(644)
666 – 022 = rw-r-r
权限掩码umask的作用
如何修改Umask值呢?
常用的是700 755 最大权限是777
默认文件夹 755
默认文件 644
一般操作习惯都用数字来描述
chmod命令
chmod [ugoa] [+-=] [rwx] 文件或目录 //(u,g,o,a分别表示属
主,属组,其他用户,所有
用户)(+-=分别表示增加,
去除,设置权限)
chmod nnn 文件或目录 //nnn表示三位八进制数字,也就是改变权限值
chmod -R //递归修改指定目录下所有子项的权限
chown命令
chown 属主 文件或目录
chown:属组 文件或目录
chown 属主:属组 文件或目录
-R //递归修改指定目录下所有文件,子目录的归属