-----------Linux的安全性-------------
linux安全系统的核心是用户账户,用户对系统上对象的访问权限取决于他们登陆系统时用的账户。
1、/etc/passwd:Linux系统使用专门/etc/passwd来将用户的登陆名匹配到对应的UID值.root用户账户是Linux系统的管理员,通常分配给它的UID是0.
Linux系统会为各种各样功能创建不同的用户账户,这些账户不是真的用户,是系统上运行各种服务进程访问资源用的特殊账户(所有运行在后台的服务都需要用一个系统用户账户登陆到Linux系统上)。
Linux为系统账户预留了500一下的UID值,为普通用户创建账户时,UID一般都是500以上。
2、/etc/shadow:保存用户密码
3、添加新的用户工具是useradd:一些发行版本的Linux会把用户和用户组工具放到/usr/sbin/目录下,但是可能不在path路径下,只需要将这个路径加到path路径下就可以了。
useradd -D:查看Linux系统默认值(表示如果在创建新用户的时候如果不在命令行指定参数的话,useradd就用如下默认值)。例如:
[root@localhost ~]# useradd -D
GROUP=100 //表示新加的用户将会加到GID为100的公共组下
HOME=/home //新用户的HOME目录将会放到/home下
INACTIVE=-1 //新用户的密码过期后不会被禁用
EXPIRE= //新用户未被设置密码过期
SHELL=/bin/bash //新用户账户的bash shell作为默认shell
SKEL=/etc/skel //系统会将/etc/skel目录下的内容复制到用户的home目录下
CREATE_MAIL_SPOOL=yes //系统为该用户账户在mail目录下创建一个用户接收邮件的文件
/etc/skel/是管理员创建的一份默认的HOME目录配置,
useradd -m test :表示创建一个test用户。默认useradd不会自动创建home目录,加上-m的参数就会创建新的home目录。例如:
[root@localhost ~]# useradd -m test
[root@localhost ~]# ls -al /home/test
总用量 12
drwx------. 2 test test 62 11月 6 18:09 .
drwxr-xr-x. 3 root root 18 11月 6 18:09 ..
-rw-r--r--. 1 test test 18 8月 3 2016 .bash_logout
-rw-r--r--. 1 test test 193 8月 3 2016 .bash_profile
-rw-r--r--. 1 test test 231 8月 3 2016 .bashrc
比较有用的useradd参数:
-c comment:为用户添加备注
-d home_dir:为用户主目录指定一个目录名字
-g initial_group:指定用户登陆租的GID或是组名
-m:创建用户的HOME目录
-p passwd:为账户指定密码
-u UID:为账户指定一个唯一的UID
useradd -D -s /bin/tsch:更改默认的登陆shell
比较有用的参数:
-b default_home:更改默认的创建用户HOME目录的位置
-e expiaration_date:默认创建的新账户过期日期
-f inaction:更改新用户从密码过期到账户禁用的天数
-g group:更改默认的组名或是GID
-s shell:默认的登陆shell
4、删除用户的工具是userdel.默认情况下,userdel会只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该用户的的任何文件。
如果加上-r参数,会删除该用户的HOME目录和mail目录,其他目录的文件还是存在。
5、修改用户的工具是usermod:
-l:用来修改账户的登录名
-L:用来锁定用户
-p:用来修改用户密码
-U:用来解锁用户
6、修改密码工具passwd或chpasswd:改变自己的密码
-------------------使用Linux组---------------
Linux用另外一个概念(组),Linux运行一组用户共享资源。组权限允许多个用户共享一组共有的权限来访问系统上的对象,比如文件、目录或是设备。每个组也有一个唯一的GID。
/etc/group:存放系统上每个组的信息。
创建新组的工具是groupadd,例如:
[root@localhost ~]# groupadd shared //创建shared这个组。
[root@localhost ~]# useradd -m test1
[root@localhost ~]# usermod -G shared test1
[root@localhost ~]# tailf /etc/group
ssh_keys:x:996:
dip:x:40:
tss:x:59:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
chrony:x:995:
test:x:1000:
shared:x:1001:test,test1 //test和test1用户属于shared组
test1:x:1002:
修改组工具是groupmod:
-g:修改已有组的GID
-n:修改已有租的名字
例如:[root@localhost ~]# groupmod -n sharing shared
[root@localhost ~]# tail /etc/group
ssh_keys:x:996:
dip:x:40:
tss:x:59:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
chrony:x:995:
test:x:1000:
test1:x:1002:
sharing:x:1001:test,test1
[root@localhost ~]# groupmod -g 1005 sharing
[root@localhost ~]# tail -3 /etc/group
test:x:1000:
test1:x:1002:
sharing:x:1005:test,test1
------------------理解文件权限---------------------
命令ls -l的输出中,例如:
[root@localhost /]# cd dev
[root@localhost dev]# ls -l
总用量 0
crw-rw----. 1 root video 10, 175 11月 3 17:48 agpgart
crw-------. 1 root root 10, 235 11月 3 17:48 autofs
drwxr-xr-x. 2 root root 180 11月 3 17:48 block
drwxr-xr-x. 2 root root 80 11月 3 17:48 bsg
crw-------. 1 root root 10, 234 11月 3 17:48 btrfs-control
drwxr-xr-x. 3 root root 60 11月 3 17:48 bus
第一个字段描述的是文件和目录权限的码:
-:代表是文件
d:代表是目录
l:代表是链接
c:代表字符型设备
n:代表网络设备
之后有三组字符码,标识三重访问权限,分别有对象的属主、属组、系统其他用户的权限:
r:代表文件可读
w:代表文件可写
x:代表未见可执行
-:表示没有某种权限
例如倒数第一条记录标识:d表示是一个目录,rwx表示属主的权限是rwx,r-x表示属组的权限是r-x,r-x标识其他用户权限是r-x
umask工具用来显示和设置权限,umask用8进制来标识
---:0
--x:1
-w-:2
-wx:3
r--:4
r-x:5
rw-:6
rwx:7
例如:
[root@localhost 小潘的学习]# cd umask命令/
[root@localhost umask命令]# umask
0022
[root@localhost umask命令]# touch file.txt
[root@localhost umask命令]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 11月 6 19:05 file.txt
[root@localhost umask命令]# umask 026
[root@localhost umask命令]# touch file1.txt
[root@localhost umask命令]# ls -l
总用量 0
-rw-r-----. 1 root root 0 11月 6 19:06 file1.txt
-rw-r--r--. 1 root root 0 11月 6 19:05 file.txt
umadk是一个掩码,创建文件的时候会用全权限减去umask的值,对于文件的全权限是666,对于目录的全权限是777.上面例子中666-026=640.所以创建出来的file1的权限是rw-r-----
------------------------改变安全性设置-----------------
改变权限:chmod options mode file,直接赋值的是八进制数,例如:
[root@localhost umask命令]# chmod 666 file1.txt
[root@localhost umask命令]# ls -l
总用量 0
-rw-rw-rw-. 1 root root 0 11月 6 19:06 file1.txt
-rw-r--r--. 1 root root 0 11月 6 19:05 file.txt
改变所属关系: chown options owner[.group] file,例如:
[root@localhost umask命令]# chown test.sharing file1.txt
[root@localhost umask命令]# ls -l
总用量 0
-rw-rw-rw-. 1 test sharing 0 11月 6 19:06 file1.txt
-rw-r--r--. 1 root root 0 11月 6 19:05 file.txt
--------------------共享文件-----------------------
Linux为每个文件和目录存储了3个额外的信息位:
设置用户ID(SUID):当文件被用户使用时,程序会以文件属主的权限运行。
设置组ID(SGID):对文件来说,程序会以文件属组的权限运行;对于目录来说,目录中创建的新文件会以目录的默认属组作为默认属组。
粘着位:进程结束后文件还会在内存中。
0:所有为都清0
1:粘着位置位
2:SGID位置位
3:SGID位和粘着位置位
4:SUID位置位
5:SUID为和粘着位置位
6:SUID和SGID置位
7:所有位置位
要创建一个共享目录,使用目录的新文件都沿用目录属组,例如:
[root@localhost umask命令]# mkdir testdir //创建目录
[root@localhost umask命令]# ls -l
总用量 0
drwxr-xr-x. 2 root root 6 11月 6 19:42 testdir
[root@localhost umask命令]# chgrp sharing testdir //改变目录的组属性,将目录的默认属组改为含有所有需要共享文件用户的组
[root@localhost umask命令]# ls -l
总用量 0
drwxr-xr-x. 2 root sharing 6 11月 6 19:42 testdir
[root@localhost umask命令]# chmod g+s testdir //将目录的SGID位置位
[root@localhost umask命令]# ls -l
总用量 0
drwxr-sr-x. 2 root sharing 6 11月 6 19:42 testdir
[root@localhost umask命令]# umask 002
[root@localhost umask命令]# cd testdir
[root@localhost testdir]# touch test.txt
[root@localhost testdir]# ls -l
总用量 0
-rw-rw-r--. 1 root sharing 0 11月 6 19:44 test.txt
linux安全系统的核心是用户账户,用户对系统上对象的访问权限取决于他们登陆系统时用的账户。
1、/etc/passwd:Linux系统使用专门/etc/passwd来将用户的登陆名匹配到对应的UID值.root用户账户是Linux系统的管理员,通常分配给它的UID是0.
Linux系统会为各种各样功能创建不同的用户账户,这些账户不是真的用户,是系统上运行各种服务进程访问资源用的特殊账户(所有运行在后台的服务都需要用一个系统用户账户登陆到Linux系统上)。
Linux为系统账户预留了500一下的UID值,为普通用户创建账户时,UID一般都是500以上。
2、/etc/shadow:保存用户密码
3、添加新的用户工具是useradd:一些发行版本的Linux会把用户和用户组工具放到/usr/sbin/目录下,但是可能不在path路径下,只需要将这个路径加到path路径下就可以了。
useradd -D:查看Linux系统默认值(表示如果在创建新用户的时候如果不在命令行指定参数的话,useradd就用如下默认值)。例如:
[root@localhost ~]# useradd -D
GROUP=100 //表示新加的用户将会加到GID为100的公共组下
HOME=/home //新用户的HOME目录将会放到/home下
INACTIVE=-1 //新用户的密码过期后不会被禁用
EXPIRE= //新用户未被设置密码过期
SHELL=/bin/bash //新用户账户的bash shell作为默认shell
SKEL=/etc/skel //系统会将/etc/skel目录下的内容复制到用户的home目录下
CREATE_MAIL_SPOOL=yes //系统为该用户账户在mail目录下创建一个用户接收邮件的文件
/etc/skel/是管理员创建的一份默认的HOME目录配置,
useradd -m test :表示创建一个test用户。默认useradd不会自动创建home目录,加上-m的参数就会创建新的home目录。例如:
[root@localhost ~]# useradd -m test
[root@localhost ~]# ls -al /home/test
总用量 12
drwx------. 2 test test 62 11月 6 18:09 .
drwxr-xr-x. 3 root root 18 11月 6 18:09 ..
-rw-r--r--. 1 test test 18 8月 3 2016 .bash_logout
-rw-r--r--. 1 test test 193 8月 3 2016 .bash_profile
-rw-r--r--. 1 test test 231 8月 3 2016 .bashrc
比较有用的useradd参数:
-c comment:为用户添加备注
-d home_dir:为用户主目录指定一个目录名字
-g initial_group:指定用户登陆租的GID或是组名
-m:创建用户的HOME目录
-p passwd:为账户指定密码
-u UID:为账户指定一个唯一的UID
useradd -D -s /bin/tsch:更改默认的登陆shell
比较有用的参数:
-b default_home:更改默认的创建用户HOME目录的位置
-e expiaration_date:默认创建的新账户过期日期
-f inaction:更改新用户从密码过期到账户禁用的天数
-g group:更改默认的组名或是GID
-s shell:默认的登陆shell
4、删除用户的工具是userdel.默认情况下,userdel会只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该用户的的任何文件。
如果加上-r参数,会删除该用户的HOME目录和mail目录,其他目录的文件还是存在。
5、修改用户的工具是usermod:
-l:用来修改账户的登录名
-L:用来锁定用户
-p:用来修改用户密码
-U:用来解锁用户
6、修改密码工具passwd或chpasswd:改变自己的密码
-------------------使用Linux组---------------
Linux用另外一个概念(组),Linux运行一组用户共享资源。组权限允许多个用户共享一组共有的权限来访问系统上的对象,比如文件、目录或是设备。每个组也有一个唯一的GID。
/etc/group:存放系统上每个组的信息。
创建新组的工具是groupadd,例如:
[root@localhost ~]# groupadd shared //创建shared这个组。
[root@localhost ~]# useradd -m test1
[root@localhost ~]# usermod -G shared test1
[root@localhost ~]# tailf /etc/group
ssh_keys:x:996:
dip:x:40:
tss:x:59:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
chrony:x:995:
test:x:1000:
shared:x:1001:test,test1 //test和test1用户属于shared组
test1:x:1002:
修改组工具是groupmod:
-g:修改已有组的GID
-n:修改已有租的名字
例如:[root@localhost ~]# groupmod -n sharing shared
[root@localhost ~]# tail /etc/group
ssh_keys:x:996:
dip:x:40:
tss:x:59:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
chrony:x:995:
test:x:1000:
test1:x:1002:
sharing:x:1001:test,test1
[root@localhost ~]# groupmod -g 1005 sharing
[root@localhost ~]# tail -3 /etc/group
test:x:1000:
test1:x:1002:
sharing:x:1005:test,test1
------------------理解文件权限---------------------
命令ls -l的输出中,例如:
[root@localhost /]# cd dev
[root@localhost dev]# ls -l
总用量 0
crw-rw----. 1 root video 10, 175 11月 3 17:48 agpgart
crw-------. 1 root root 10, 235 11月 3 17:48 autofs
drwxr-xr-x. 2 root root 180 11月 3 17:48 block
drwxr-xr-x. 2 root root 80 11月 3 17:48 bsg
crw-------. 1 root root 10, 234 11月 3 17:48 btrfs-control
drwxr-xr-x. 3 root root 60 11月 3 17:48 bus
第一个字段描述的是文件和目录权限的码:
-:代表是文件
d:代表是目录
l:代表是链接
c:代表字符型设备
n:代表网络设备
之后有三组字符码,标识三重访问权限,分别有对象的属主、属组、系统其他用户的权限:
r:代表文件可读
w:代表文件可写
x:代表未见可执行
-:表示没有某种权限
例如倒数第一条记录标识:d表示是一个目录,rwx表示属主的权限是rwx,r-x表示属组的权限是r-x,r-x标识其他用户权限是r-x
umask工具用来显示和设置权限,umask用8进制来标识
---:0
--x:1
-w-:2
-wx:3
r--:4
r-x:5
rw-:6
rwx:7
例如:
[root@localhost 小潘的学习]# cd umask命令/
[root@localhost umask命令]# umask
0022
[root@localhost umask命令]# touch file.txt
[root@localhost umask命令]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 11月 6 19:05 file.txt
[root@localhost umask命令]# umask 026
[root@localhost umask命令]# touch file1.txt
[root@localhost umask命令]# ls -l
总用量 0
-rw-r-----. 1 root root 0 11月 6 19:06 file1.txt
-rw-r--r--. 1 root root 0 11月 6 19:05 file.txt
umadk是一个掩码,创建文件的时候会用全权限减去umask的值,对于文件的全权限是666,对于目录的全权限是777.上面例子中666-026=640.所以创建出来的file1的权限是rw-r-----
------------------------改变安全性设置-----------------
改变权限:chmod options mode file,直接赋值的是八进制数,例如:
[root@localhost umask命令]# chmod 666 file1.txt
[root@localhost umask命令]# ls -l
总用量 0
-rw-rw-rw-. 1 root root 0 11月 6 19:06 file1.txt
-rw-r--r--. 1 root root 0 11月 6 19:05 file.txt
改变所属关系: chown options owner[.group] file,例如:
[root@localhost umask命令]# chown test.sharing file1.txt
[root@localhost umask命令]# ls -l
总用量 0
-rw-rw-rw-. 1 test sharing 0 11月 6 19:06 file1.txt
-rw-r--r--. 1 root root 0 11月 6 19:05 file.txt
--------------------共享文件-----------------------
Linux为每个文件和目录存储了3个额外的信息位:
设置用户ID(SUID):当文件被用户使用时,程序会以文件属主的权限运行。
设置组ID(SGID):对文件来说,程序会以文件属组的权限运行;对于目录来说,目录中创建的新文件会以目录的默认属组作为默认属组。
粘着位:进程结束后文件还会在内存中。
0:所有为都清0
1:粘着位置位
2:SGID位置位
3:SGID位和粘着位置位
4:SUID位置位
5:SUID为和粘着位置位
6:SUID和SGID置位
7:所有位置位
要创建一个共享目录,使用目录的新文件都沿用目录属组,例如:
[root@localhost umask命令]# mkdir testdir //创建目录
[root@localhost umask命令]# ls -l
总用量 0
drwxr-xr-x. 2 root root 6 11月 6 19:42 testdir
[root@localhost umask命令]# chgrp sharing testdir //改变目录的组属性,将目录的默认属组改为含有所有需要共享文件用户的组
[root@localhost umask命令]# ls -l
总用量 0
drwxr-xr-x. 2 root sharing 6 11月 6 19:42 testdir
[root@localhost umask命令]# chmod g+s testdir //将目录的SGID位置位
[root@localhost umask命令]# ls -l
总用量 0
drwxr-sr-x. 2 root sharing 6 11月 6 19:42 testdir
[root@localhost umask命令]# umask 002
[root@localhost umask命令]# cd testdir
[root@localhost testdir]# touch test.txt
[root@localhost testdir]# ls -l
总用量 0
-rw-rw-r--. 1 root sharing 0 11月 6 19:44 test.txt