centos7的基本使用
阿新 • • 發佈:2018-07-03
同一時間 pre 目標 sel selinux。 uid mas doc 正則 centos 7 虛擬化支持:
1、更高性能的KVM內核虛擬化支持
2、嵌套虛擬化支持,可以在KVM中安裝配置OpenStack
3、繼續支持作為虛擬機的Xen技術,但不再支持作為寄主機的Xen技術
4、加強了對VMWARE的技術支持,自帶open-vm-tools替換vm-tools
5、RHEL 7 容器型(單獨運行空間,有獨立的進程列表、網絡、文件系統、其他應用等。)虛擬化:支持最熱的技術Docker
系統及服務管理程序修改為Systemd
防火墻命令變為firewalld
服務控制相關命令變為systemctl
控制服務和守護進程:
systemd簡介:
系統服務和服務器進程由systemd系統和服務管理器進行管理
功能:
1、並行化功能,提高系統的啟動速度
2、按需啟動守護進程,而不需要單獨的服務
3、自動服務依賴關系管理,可以防止時間超時(例如:網絡不可用時不啟動網絡服務)
systemctl命令用於管理各種類型的systemd對象(也叫單元)。
[root@xiao~]# systemctl -t help //查看systemd對象
[root@xiao~]# systemctl //查詢所有對象的狀態
[root@xiao~]# systemctl --type=service //僅查詢服務對象的狀態
[root@xiao ~]# systemctl status sshd //查詢指定服務的狀態,如 SSH
[root@xiao ~]# systemctl is-active sshd //查看服務是不是正在運行
[root@xiao ~]# systemctl is-enabled sshd //查看服務是不是設置為了開機啟動
[root@xiao ~]# systemctl enable sshd //設置服務開機自動運行
[root@xiao ~]# systemctl disable sshd //設置服務開機不自動啟動
[root@xiao ~]# systemctl start | stop | restart sshd 啟動、關閉、重啟服務
權限掩碼:
當我們登錄系統之後創建一個文件總是有一個默認權限的,是因為umask設置了用戶創建文件的默認權限.
umask設置的是權限"補碼",而chmod設置的是文件權限碼。
總結:通過權限掩碼為文件和目錄設置默認權限。
例如:
目錄:
[root@xiao ~]# umask 777
[root@xiao ~]# umask
0777
[root@xiao ~]# mkdir /hehe
[root@xiao ~]# ll -d /hehe/
d---------. 2 root root 6 Jul 2 23:00 /hehe/
[root@xiao ~]# umask 000
[root@xiao ~]# mkdir /haha
[root@xiao ~]# ll -d /haha/
drwxrwxrwx. 2 root root 6 Jul 2 23:02 /haha/
文件:
[root@xiao ~]# umask 666
[root@xiao ~]# mkdir /xixi
[root@xiao ~]# ll -d /xixi/
d--x--x--x. 2 root root 6 Jul 2 23:04 /xixi/
[root@xiao ~]# touch /xixi/1.txt
[root@xiao ~]# ll -l /xixi/
----------. 1 root root 0 Jul 2 23:06 1.txt
[root@xiao ~]# umask 444
[root@xiao ~]# touch /xixi/2.txt
[root@xiao ~]# ll -l /xixi/
----------. 1 root root 0 Jul 2 23:07 1.txt
--w--w--w-. 1 root root 0 Jul 2 23:07 2.txt
方法:
umask是從權限中"拿走"相應的位。
註意:
對於文件來說,這個數字的最大值分別是6(原因文件創建時不能賦予執行權限)。
對於目錄來說,這個數字的最大值分別是7。
調整服務優先級:
nice命令用來設置優先級,優先級的數值為-20~19,其中數值越小優先級越高,數值越大優先級越低,
-20的優先級最高,19的優先級最低。
需要註意的是普通用戶只能在0~19之間調整應用程序的優先權值,只有超級用戶有權調整更高的優先權值(從-20~19)。
當調整之後的優先級小於-20時,以優先級-20來運行;當調整之後的優先級大於19時,以優先級19來運行
[root@xiao ~]# nice -n 5 httpd
如果不指定值。默認優先級為0
[root@xiao ~]# nice httpd
文件和目錄的特殊權限:
設置特殊權限命令:chmod
1、Set位權限
1) suid(用戶Set位權限)
作用:擁有與所有者一樣的權限(以擁有文件的用戶身份,而不是以運行文件的用戶身份執行文件)
用S表示:S(大):表示有r或w權限;s(小): 表示有x權限。
例如:chmod u+s file.txt
2) sgid(組Set位權限)
作用:擁有與所有者一樣的權限(以擁有文件的組身份,而不是以運行文件的組份執行文件)
用S表示:S(大):表示有r或w權限;s(小): 表示有x權限。
例如:chmod g+s file.txt
2、粘滯位權限
作用:僅文件的所有者(和root)可以刪除目錄中的文件
總結:針對目錄,防刪除目錄中的文件。
用T表示:T(大):表示有r或w權限;t(小): 表示有x權限。
3、facl訪問控制列表
命令:
getfacl:查詢
setfacl:設置
命令格式:
setfacl -m u/g:hehe:rwx /dir
| | | |
設置 用戶 權限 目錄
setfacl 參數
-m:設置後續acl參數
-x:刪除後續acl參數
-b:刪除全部的acl參數
-k:刪除默認的acl參數
-R:遞歸設置acl,包括子目錄
-d:設置默認acl
selinux設置:
SELinux是一個額外的系統安全層,目的是防止已遭泄露的系統服務訪問用戶數據。
基於用戶/組/權限的安全模型稱為自由決定的訪問控制
基於對象並更加復雜的規則控制稱為強制訪問控制
要允許遠程匿名訪問WEB服務器。必須打開防火墻端口,惡意人員則有機會通過安全漏洞***系統,繼而取得用戶和組的權限。
而SELinux是用於確定哪個進程可以訪問那些文件、目錄和端口的一組安全規則,
每個文件、進程和端口都具有特別的安全標簽,稱為SELinux上下文(是一個名稱)。
SELinux策略使用上下文來確定某個進程能否訪問文件、目錄或端口,除非規則授予訪問權限。
SELinux標簽具有多種上下文:用戶、角色、類型(和敏感度)。
目標策略會根據第三個上下文(即類型上下文)來制定自己的規則。類型上下文的名稱通常以_t結尾。
1)system_u 指的是SElinux用戶,root表示root賬戶身份,user_u表示普通用戶無特權用戶,system_u表示系統進程,通過用戶可以確認身份類型,一般搭配角色使用。身份和不同的角色搭配時有權限不同,雖然可以使用su命令切換用戶但對於SElinux的用戶並沒有發生改變,賬戶之間切換時此用戶身份不變,在targeted策略環境下用戶標識沒有實質性作用。
2)object_r 一般為文件目錄的角色、system_r一般為進程的角色,在targeted策略環境中用戶的角色一般為system_r。用戶的角色類似用戶組的概念,不同的角色具有不同的身份權限,一個用戶可以具備多個角色,但是同一時間只能使用一個角色。在targeted策略環境下角色沒有實質作用,在targeted策略環境中所有的進程文件的角色都是system_r角色。
3)type 文件和進程都有一個類型,SElinux依據類型的相關組合來限制存取權限。
4)s0:[MLS、MCS]:MCS負責對同類進程進行彼此區分,而MLS則允許一種進程擁有指向另一種進程的支配權限。(也就是說:MLS與MCS非常相似,但它為強制機制添加了"支配"這一概念。MCS標簽必須在完全匹配的情況下才能通過,但一條MLS標簽可以支配另一條MLS標簽從而獲得訪問許可。)
例如:
httpd_sys_content_t //文件和目錄的類型上下文
httpd_port_t //端口的類型上下文
tmp_t //位於/tmp中的文件和目錄的類型上下文。
1、查看安全上下文:
[root@yuan ~]# id //可以查看用戶的上下文
[root@yuan ~]# ls -dZ /var/www/html/
[root@yuan ~]# ls -dZ /tmp
[root@yuan ~]# ps -axZ
[root@yuan ~]# ps -ZC httpd
2、查看並設置SELinux模式
enforcing //強制模式
permissive //許可模式
disabled //禁用模式
[root@yuan ~]# sestatus -v //查看SELinux狀態
1)臨時設置
[root@yuan ~]# getenforce
[root@yuan ~]# setenforce 0/1
註:
0 代表permissive(許可模式)
1 代表enforcing(強制模式)
2)永久設置
[root@yuan ~]# vim /etc/selinux/config
修改
SELINUX=enforcing|permissive|disabled
[root@yuan ~]# reboot //重啟生效
3、修改SELinux上下文
1)使用chcon命令
[root@yuan ~]#mkdir /www
[root@yuan ~]#ls -dZ /www //查看默認的類型上下文
[root@yuan ~]# chcon -t httpd_sys_content_t /www/
[root@yuan ~]# ls -dZ /www/
註意:
子級文件和目錄會繼承父級目錄的上下文
使用chcon設置後,系統重啟之後,將會還原為默認的上下文
2)使用restorecon命令
[root@yuan ~]# restorecon -v /www/ //查看默認上下文
[root@yuan ~]# restorecon /www/ //使用此命令來設置默認上下文
[root@yuan ~]# ls -dZ /www/
3)
[root@yuan ~]#mkdir /www
[root@yuan ~]#touch /www/1.txt
[root@yuan ~]#touch /www/2.txt
[root@yuan ~]#ll -Z /www/
[root@yuan ~]#mv /www/* /var/www/html/
[root@yuan ~]#ls -Z /var/www/html/
[root@yuan ~]#ls -dZ /var/www/html/
[root@yuan ~]#semanage fcontext -l
[root@yuan ~]#semanage fcontext -l | grep "/var/www/html"
[root@yuan ~]#restorecon -Rv /var/www/html/ //設置上下文
[root@yuan ~]# semanage fcontext -a -t httpd_sys_content_t '/www/html(/.*)?' //通過正則表達式匹配。
4、修改SELinux布爾值
SELinux布爾值是更改SELinux策略行為的開關,SELinux布爾值通過啟用和禁用規則,來調整策略。
1)查看布爾值
[root@yuan ~]#getsebool -a
[root@yuan ~]#getsebool -a | grep "ftpd"
2)設置布爾值
[root@yuan ~]#setsebool ftpd_anon_write on //臨時生效
[root@yuan ~]#setsebool -P allow_ftpd_anon_write=1 //永久生效
例:
安裝SELINUX的工具包
[root@yuan ~]# rpm -ivh /media/policycoreutils-newrole-1.33.12-14.8.el5.i386.rpm
以搭建vsftpd服務器為例,使用selinux。
[root@yuan ~]# rpm -ivh /media/vsftpd-2.0.5-16.el5_4.1.i386.rpm
[root@yuan ~]# vim /etc/vsftpd/vsftpd.conf
[root@yuan ~]# service vsftpd restart
[root@yuan ~]# chmod 777 pub/
[root@yuan ~]# getsebool -a | grep ftp
[root@yuan ~]# setsebool -P allow_ftpd_anon_write=1
[root@yuan ~]# chcon -t public_content_rw_t /var/ftp/pub/
centos7圖形配置:
1、圖形配置IP : nmtui
2、圖形配置防火墻 : firewall-config
3、查看SElinux安全上下文
semanage fcontext -l
semanage fcontext -l | grep httpd_sys
semanage fcontext -l | grep httpd_sys_con
centos7的基本使用