Linux系统会为各种各样的功能创建不同的账户,而这些账户并不是真的用户。这些账户被称作系统账户,是系统上运行的各种服务进程访问资源用的特殊账户。
一般,系统账户的UID值都小于500.
Linux的安全性
1. /etc/passwd文件
passwd文件里的密码字段值都被设置成了x,这是考虑到了密码的安全性。真正的密码我们会保存在/etc/shadow文件中。
2. /etc/shadow文件
该文件能对Linux系统如何管理密码有更多的控制。只有root用户才能访问该文件,这让它比/etc/passwd文件要安全的多。
3. 添加新用户
useradd
参数:
-D: 该参数显示了在创建新用户时如果你不在命令行指定的话,useradd命令将使用的默认值。(注意:可以在-D后面再加参数和对应的值,来修改系统默认的新用户值)
-m: 创建用户的HOME目录
-d home_dir: 为主目录指定一个名字(如果不想使用默认主目录名的话)
-g: 指定用户登录组的GID或组名
-p: 指定用户账户的密码
-u: 为账户指定一个唯一的UID
4. 删除用户
userdel
默认情况下,userdel命令只会删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。
加上**-r**参数:该命令会删除用户的HOME目录以及mail目录;
>useradd -r username
5. 修改用户账户信息
- usermod:可以用来修改/etc/passwd文件中的大部分字段,该命令后面加上对应字段的参数就行。
大部分参数和useradd的参数一样。还有一些实用的额外参数:
-l :修改用户账户的登录名
-L:用来锁定账户,这样用户就无法登录了
-U:用来解除锁定,用户就可以登录了
-p:修改账户的密码 - passwd:修改自己的密码
chpasswd:如果需要为系统中的大量用户来修改密码,可使用该命令。该命令能从标准输入自动读取登录名和密码度对(由冒号分隔)列表,给密码加密,然后为用户账户设置,当然也可以用重定向命令来将含有userid:passwd对的文件重定向给命令:
chpasswd < users.txt
chsh、chfn和chage
chsh -s /bin/csh test #修改test用户的登录shell,注意-s后面必须跟shell的全路径名
chfn test #该命令会将Unix finger命令用到的信息存进/etc/passwd的备注字段中
chage #用来帮助管理用户帐号的有效期
6. 使用Linux组
- /etc/group文件
使用usermode -G命令:添加用户到该组:# /usr/sbin/usermod -G groupName userName
注意如果使用:usermode -g
命令:则指定的组名会替换掉该账户的默认组(即: /etc/passwd文件中该用户的GID会更新为指定的组名的GID) - 修改组(groupmod)
修改已有组的GID(-g参数)
修改已有组的组名(-n参数):groupmod -n newGName oldGName
7. 文件权限
默认的文件权限
在Linux系统中新建一个文件夹或者文件时,会有一个默认的权限,那这个默认的权限是怎么来的呢?
是由umask
决定的。
umask
命令:可用来设置用户创建文件和目录的默认权限。# umask 026 //将umask的值设置为026
默认权限 = 全权限的值 - umask的值a. 对于文件:全权限值=666, 所以文件默认的权限值为644(666-022) b. 对于文件夹:全权限值=777,所以文件夹默认的权限值为755(777-022)
8. 更改文件安全性设置
只有root用户才能改变文件的属主。任何属主都可以改变文件的属组,但前提是属主必须是源和目标属组的成员。
改变文件(夹)权限
chmod options mode file
mode参数有两种方式:
1). 八进制模式[root@imss elsie]# ll total 0 -r-xr-xr-x 1 root root 0 Aug 12 20:35 newfile //555 [root@imss elsie]# chmod 644 newfile [root@imss elsie]# ll total 0 -rw-r--r-- 1 root root 0 Aug 12 20:35 newfile //644 ```
2). 符号模式
格式:[ugoa…] [+-=] [rwxXstugo…][root@imss elsie]# ll total 4 drwxr--r-- 2 root root 4096 Aug 12 21:10 Folder -rwxr--r-- 1 root root 0 Aug 12 20:35 newfile //744 [root@imss elsie]# chmod g+wx newfile //为对象的属组添加 [写、执行] 权限 [root@imss elsie]# ll total 4 drwxr--r-- 2 root root 4096 Aug 12 21:10 Folder -rwxrwxr-- 1 root root 0 Aug 12 20:35 newfile //774 options参数:可为chmod提供另外一些功能。例如: -R参数:可以让权限的改变递归地作用到文件和子目录。
改变所属关系
1). chown: 改变文件的属主(也可以用来改变文件的属组) 格式:chown options owner[.group] file options: -R: 递归地改变子目录和文件的所属关系。 -h: 可以改变该文件的所有符号链接文件的所属关系。 # chown newOwner Filename //其中, newOwner 可以是 [登录名 或者 UID] # chown dan.shared Filename //将文件的属主改为 dan, 属组改为 shared # chown .shared Filename //将文件属组改为shared 2). chgrp: 改变文件的默认属主。 # chgrp shared Filename //将文件的属组改为shared
9. 共享文件
可以通过设置组ID位来创建共享目录。
Linux为每个目录和文件存储了3个额外的信息位。
- 设置用户ID(SUID):当文件被用户使用时,程序会以文件属主的权限运行
- 设置组ID(SGID):For 文件,程序会以文件属组的权限运行;For 目录,目录中创建的新文件会以目录的默认属组作为默认属组。
粘着位:进程结束后文件还会在内存中
可以通过
chmod命令
来设置这些信息位。