基於linux下的selinux安全系統
selinux簡介:
SELinux(Security-Enhanced Linux) 是美國國家安全域性(NSA)對於強制訪問控制的實現,是 Linux歷史上最傑出的新安全子系統。NSA是在Linux社群的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,程序只能訪問那些在他的任務中所需要檔案。
SELinux 是 2.6 版本的 Linux 核心中提供的強制訪問控制(MAC)系統。對於目前可用的 Linux安全模組來說,SELinux 是功能最全面,而且測試最充分的,它是在 20 年的 MAC 研究基礎上建立的。SELinux 在型別強制伺服器中合併了多級安全性或一種可選的多類策略,並採用了基於角色的訪問控制概念。
SELINUX有「disabled」「permissive」,「enforcing」3種模式選擇。
Disabled就是關閉,permissive就是Selinux有效,但是即使你違反了策略的話它讓你繼續操作,
但是把你的違反的內容記錄下來。
Enforcing就是你違反了策略,你就無法繼續操作下去。
selinux的模式轉換需要重啟,因為selinux是核心級的外掛。
[root@localhost yum.repos.d]# vim /etc/sysconfig/selinux 將disabled改為enforcing
[root@localhost yum.repos.d]# getenforce 未重啟不生效
Disabled
[root@localhost yum.repos.d]# reboot 重啟
Connection to 172.25.254.221 closed by remote host.
Connection to 172.25.254.221 closed.
[kiosk@foundation21 Desktop]$ ssh root@172.25.254.221 連線虛擬機器
root@172.25.254.221's password:
Last login: Sun May 6 02:50:29 2018 from 172.25.254.21
[ [email protected] ~]# getenforce 檢視生效
Enforcing
首先當重置了虛擬機器之後,需要配置IP和yum源,安裝一些必須服務:
[kiosk@foundation21 Desktop]$ rht-vmctl reset server
Are you sure you want to reset server? (y/n) y
[[email protected] Desktop]$ rht-vmctl view server進去配置IP
[[email protected] Desktop]$ ssh [email protected]
[email protected]'s password:
Last login: Fri May 11 21:25:49 2018
[[email protected] ~]# vim /etc/sysconfig/selinux不用更改為Enforce即可
[[email protected] yum.repos.d]# getenforce
Enforcing
[[email protected] ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
rhel_dvd.repo
[root@localhost yum.repos.d]# rm -fr *
[root@localhost yum.repos.d]# vim yum.repo
[root@localhost yum.repos.d]# cat yum.repo
[source7.0]
name=source7.0
baseurl=http://172.25.254.84/source7.0
gpgcheck=0
[root@localhost ~]# yum install vsftpd lftp -y 安裝服務
Complete!
[root@localhost ~]# systemctl start vsftpd 開始服務
[root@localhost ~]# systemctl enable vsftpd 開機自啟動
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
[root@localhost ~]# systemctl stop firewalld 關閉火牆
[root@localhost ~]# systemctl disable firewalld 開機自動關閉
配置IP和yum源,設定selinux為強制。
安裝服務開機自啟動並設定開機自動關閉防火牆。
設定selinux安全上下文有臨時設定和永久設定之分
1,臨時設定安全上下文:
[root@localhost ~]# mkdir /westos
[root@localhost ~]# touch /westos/westosfile 建立檔案安全上下文不改變就無法檢視
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 編輯配置檔案
新增家目錄:anon_root=/westos
[root@localhost ~]# systemctl restart vsftpd 重啟服務
[root@localhost ~]# lftp 172.25.254.221 檢視家目錄中沒有我們建立的檔案
lftp 172.25.254.221:~> ls
lftp 172.25.254.221:/> ls
lftp 172.25.254.221:/> quit
[root@localhost ~]# vim /etc/sysconfig/selinux 檢視selinux狀態
[root@localhost ~]# getenforce 為強制即可
Enforcing
[root@localhost ~]# ls -Z /westos/ 檢視
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 westosfile
[root@localhost ~]# chcon -t public_content_t /westos -R 更改安全上下文
[root@localhost ~]# ls -Z /westos/ 已經更改成功
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 westosfile
[root@localhost ~]# lftp 172.25.254.221 檢視可以顯示我們建立的檔案
lftp 172.25.254.221:~> ls
-rw-r--r-- 1 0 0 0 May 12 02:01 westosfile
lftp 172.25.254.221:/> quit
臨時配置安全上下文之後就可以看到家目錄下的檔案。
但是這種設定是臨時的,重啟selinux失效,這裡的重啟指的是selinux的重啟,因為selinux是核心級別的,所以需要來回重啟系統。
[[email protected] ~]# vim /etc/sysconfig/selinux 更改為disabled
[[email protected] ~]# getenforce 沒有重啟看不到效果
Enforcing
[[email protected] ~]# reboot
Connection to 172.25.254.221 closed by remote host.
Connection to 172.25.254.221 closed.
[[email protected] Desktop]$ ssh [email protected]172.25.254.221
[email protected]172.25.254.221's password:
Last login: Fri May 11 21:29:55 2018 from 172.25.254.21
[[email protected] ~]# getenforce 已經變為disabled
Disabled
[[email protected] ~]# vim /etc/sysconfig/selinux 重新變為enforcing
[[email protected] ~]# getenforce 重啟之前無法檢視
Disabled
[[email protected] ~]# reboot
Connection to 172.25.254.221 closed by remote host.
Connection to 172.25.254.221 closed.
[[email protected] Desktop]$ ssh [email protected]172.25.254.221
^C
[[email protected] Desktop]$ ssh [email protected]172.25.254.221
ssh: connect to host 172.25.254.221 port 22: No route to host
[[email protected] Desktop]$ ssh [email protected]172.25.254.221
[email protected]172.25.254.221's password:
Last login: Fri May 11 22:06:24 2018 from 172.25.254.21
[[email protected] ~]# getenforce
Enforcing
[[email protected] ~]# ls -Zd /westos/ 重啟selinux之後安全上下文失效
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /westos/
如圖所示,重啟了兩遍系統之後就沒有了安全上下文許可權。
2,永久設定安全上下文許可權:
[root@localhost ~]# ls -Zd /westos/ 目錄westos安全上下文已經失效
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /westos/
[root@localhost ~]# ls -Zd /var/ftp/ /var/ftp/目錄/var/ftp永久生效
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 /var/ftp/
[root@localhost ~]# semanage fcontext -l | grep /var/ftp/ 永久生效的原因是配置檔案中已經寫入了/var/ftp。
/var/ftp/bin(/.*)? all files system_u:object_r:bin_t:s0
/var/ftp/etc(/.*)? all files system_u:object_r:etc_t:s0
/var/ftp/lib(/.*)? all files system_u:object_r:lib_t:s0
/var/ftp/lib/ld[^/]*\.so(\.[^/]*)* regular file system_u:object_r:ld_so_t:s0
[root@localhost ~]# semanage fcontext -l | grep /westos/ 配置檔案中並沒有寫入/westos目錄所以重啟失效。
[root@localhost ~]# semanage fcontext -a -t public_content_t '/westos(/.*)?'
**
-a表示新增,-t表示型別。意思將westos新增到配置檔案中。
semanage fcontext使用擴充套件正則表示式來指定路徑和檔名。
fcontect規則中最常用的擴充套件正則表示式是(/.*)?,表示隨意的匹配/後跟任何數量的字元。
**
[root@localhost ~]# semanage fcontext -l | grep /westos 檢視配置檔案是否寫入
/westos(/.*)? all files system_u:object_r:public_content_t:s0
[root@localhost ~]# restorecon -FvvR /westos/ 重新整理
restorecon reset /westos context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0
restorecon reset /westos/westosfile context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0
[root@localhost ~]# lftp 172.25.254.221 連線可以顯示目錄下面的內容
lftp 172.25.254.221:~> ls
-rw-r--r-- 1 0 0 0 May 12 02:01 westosfile
lftp 172.25.254.221:/> quit
[root@localhost ~]# touch /.autorelabel 建立這個檔案相當於重啟selinux
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# reboot
Connection to 172.25.254.221 closed by remote host.
Connection to 172.25.254.221 closed.
[kiosk@foundation21 Desktop]$ ssh [email protected]172.25.254.221
[email protected]172.25.254.221's password:
Last login: Fri May 11 22:08:26 2018 from 172.25.254.21
[[email protected] ~]# ls -Zd /westos 檢視已經有了安全上下文許可權,意味著永久修改了安全上下文許可權
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 /westos
簡單演示個例子來解釋永久和臨時的概念,比如/var/ftp/目錄在每次重啟系統時不會影響其安全上下文許可權,是由於在配置檔案中已經寫入了正則表示式。而/westos區別就是配置檔案沒有寫入正則表示式。
解決方案就是將/westos的正則表示式寫入即可就不會在重啟的時候安全上下文失效。
管理SElinux布林值:
[root@localhost ~]# setenforce 0 改變selinux級別,1表示enforcing強制0表示permissive警告。
[root@localhost ~]# lftp 172.25.254.221 -u student
Password:
lftp student@172.25.254.221:~> ls
-rw-r--r-- 1 1000 1000 2005 May 12 03:44 passwd
lftp student@172.25.254.221:~> put /etc/group 警告就是還可以執行只是會有警告
850 bytes transferred
lftp student@172.25.254.221:~> quit
[root@localhost ~]# setenforce 1 改變selinux級別為強制
[root@localhost ~]# lftp 172.25.254.221 -u student
Password:
lftp student@172.25.254.221:~> ls
-rw-r--r-- 1 1000 1000 850 May 12 03:44 group
-rw-r--r-- 1 1000 1000 2005 May 12 03:44 passwd
lftp student@172.25.254.221:~> put /etc/inittab 強制意味著直接拒絕
put: Access failed: 553 Could not create file. (inittab) 報錯553不能上傳
lftp student@172.25.254.221:~> quit
[root@localhost ~]# getsebool -a | grep ftp 檢視布林值顯示關閉狀態
ftp_home_dir --> off
[root@localhost ~]# setsebool -P ftp_home_dir on
** 修改布林值,修改selinux策略,以永久保留修改。
系統會更加安全,將selinux改為警告0僅僅是可以執行,但是系統不安全。
引數-P會將波爾值記錄在檔案中。**
[root@localhost ~]# getsebool -a | grep ftp 顯示布林值
ftp_home_dir --> on
[root@localhost ~]# lftp 172.25.254.221 -u student
Password:
lftp student@172.25.254.221:~> ls
-rw-r--r-- 1 1000 1000 850 May 12 03:44 group
-rw-r--r-- 1 1000 1000 2005 May 12 03:44 passwd
lftp student@172.25.254.221:~> put /etc/inittab 可以正常上傳
491 bytes transferred
lftp student@172.25.254.221:~> quit
將selinux狀態設定成警告可以正常上傳,改成強制就無法上傳。
我們可以將ftp下的家目錄布林值開啟,就可以正常上傳。
監控selinux衝突:
1,必須安裝 setroubleshoot-server 軟體包 , 才能將 SELinux訊息傳送至 /var/log/messages。
2,setroubleshoot-server 監聽 /var/log/audit/audit.log 中的稽核資訊並將簡短摘要傳送至 /var/log/messages。
3,摘要包括 SELinux 衝突的唯一識別符號 ( UUIDs ), 可用於收集更多資訊。
4,/var/log/audit/audit.log 用於在該檔案中生成所有事件的報告。
[root@localhost ~]# ls
anaconda-ks.cfg Documents Music Public Videos
Desktop Downloads Pictures Templates
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 將新增的主配置檔案中的東西刪除然後進行操作
[root@localhost ~]# systemctl restart vsftpd 重啟服務
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# ls
pub westos westos1
[root@localhost ftp]# rm -fr * 刪除裡面所有的檔案
[root@localhost ftp]# ls
[root@localhost ftp]# touch /mnt/westos
[root@localhost ftp]# mv /mnt/westos /var/ftp/ 將檔案移動到/var/ftp目錄裡面
[root@localhost ftp]# > /var/log/messages 清空日誌
[root@localhost ftp]# cat /var/log/messages 檢視日誌
然後在瀏覽器中輸入ftp://172.25.254.221,檢視日誌監控效果。
[root@localhost ftp]# cat /var/log/messages 檢視日誌會出來解決方案
May 12 02:45:25 localhost dbus-daemon: dbus[525]: [system] Activating service
***** Plugin catchall (7.64 confidence) suggests **************************
If you believe that vsftpd should be allowed getattr access on the file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep vsftpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
[root@localhost ftp]# cat /var/log/audit/audit.log 根據解決方案來進行檢視
[root@localhost ftp]# restorecon -v /var/ftp/* 重新整理
restorecon reset /var/ftp/westos context unconfined_u:object_r:mnt_t:s0->unconfined_u:object_r:public_content_t:s0
[root@localhost ftp]# ls -Z 檢視安全上下文
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 westos
刪除主配置檔案中新增的家目錄。
清空日誌通過生成的日誌進行效果檢視。
瀏覽器輸入IP進行生成日誌檢視效果。
檢視日誌時已經出現瞭解決方案。
根據解決方案檢視重新整理。
之所以可以生成解決方案是由於setroubleshoot-server 軟體可以監聽 /var/log/audit/audit.log 中的稽核資訊並將簡短摘要傳送至 /var/log/messages。所以才能進行監控衝突。
[root@localhost ftp]# rpm -qa | grep setrouble 查詢拍錯工具的安裝包
setroubleshoot-plugins-3.0.59-1.el7.noarch
setroubleshoot-server-3.2.17-2.el7.x86_64
[root@localhost ftp]# yum remove setroubleshoot-server-3.2.17-2.el7.x86_64 移除安裝包
Complete!
[root@localhost ftp]# > /var/log/messages 清空日誌
[root@localhost ftp]# > /var/log/audit/audit.log
[root@localhost ftp]# cat /var/log/audit/audit.log 檢視效果沒有出錯提示
[root@localhost ftp]# cat /var/log/messages
在瀏覽器中重新整理檢視日誌
[root@localhost ftp]# cat /var/log/audit/audit.log 檢視為空
[root@localhost ftp]# cat /var/log/messages 沒有出錯工具的提示
[root@localhost ftp]# yum install setroubleshoot-server -y 重新安裝監控工具
[root@localhost ftp]# > /var/log/audit/audit.log 清空日誌
[root@localhost ftp]# > /var/log/messages
清空日誌在瀏覽器中重新整理然後檢視日誌:
[root@localhost ftp]# cat /var/log/messages 已經有了排錯提示
# grep vsftpd /var/log/audit/audit.log | audit2allow -M mypol
[root@localhost ftp]# cat /var/log/audit/audit.log 可以檢視到日誌
1,解除安裝setroubleshoot-server 軟體進行演示檢視。
2,將日誌全部清除。
3,在瀏覽器重新整理
4,檢視日誌沒有排錯提示。
5,重新安裝setroubleshoot-server 軟體進行監控。
6,已經有了排錯提示:
讓selinux允許使用阿帕奇服務以外的埠。
注意:埠不可以重複。
[root@localhost ftp]# yum install httpd -y 安裝阿帕奇
[root@localhost ftp]# cat /etc/services | grep http 檢視http埠
# http://www.iana.org/assignments/port-numbers
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
http 80/sctp # HyperText Transfer Protocol
[root@localhost ftp]# vim /etc/httpd/conf/httpd.conf 將42行埠改為6666
[root@localhost ftp]# systemctl restart httpd 重啟阿帕奇服務起不來
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
[root@localhost ftp]# setenforce 0 將selinux改為警告
[root@localhost ftp]# systemctl restart httpd 可以重啟阿帕奇,但是不安全,所以需要新增埠。
[root@localhost ftp]# semanage port -l | grep http 檢視http所用的埠
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
[root@localhost ftp]# semanage port -a -t http_port_t -p tcp 6666 新增6666埠到http中
[root@localhost ftp]# semanage port -l | grep http 檢視http可用埠,6666已經成功新增
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 6666, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
[root@localhost ftp]# setenforce 1 將selinux設定為強制
[root@localhost ftp]# systemctl restart httpd 阿帕奇照樣可以重啟
[root@localhost ftp]# cat /etc/services | grep -E "\<21\>" 通過埠號檢視具體哪個服務在使用埠
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ftp 21/sctp # FTP
matip-type-b 351/tcp bhoetty # MATIP Type B / bhoetty (added 5/21/97)
[root@localhost ftp]# cat /etc/services | grep -E "\<32\>" 32埠並沒有在使用,通過檢視我們就不會重複使用埠以至於報錯。
安裝阿帕奇檢視http埠:
編輯阿帕奇檔案,將埠寫入通過更改selinux級別將服務重啟,但是檢視時6666埠仍然不支援,需要新增。
將配置檔案埠改為6666。
新增埠成功,將selinux級別改回來,由於已經添加了埠就可以正常重啟服務。
相關推薦
基於linux下的selinux安全系統
selinux簡介: SELinux(Security-Enhanced Linux) 是美國國家安全域性(NSA)對於強制訪問控制的實現,是 Linux歷史上最傑出的新安全子系統。NSA是在Linux社群的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限
linux下sendmail郵件系統安裝操作記錄
src 文件中 mage 本機 acc 現在 echo log lin 電子郵件系統的組成:1)郵件用戶代理(Mail User Agent , MUA),MUA是一個郵件系統的客戶端程序,它提供了閱讀,發送和接受電子郵件的用戶接口。 最常用的 MUA 有: linux 中
linux下如何修改系統時間
linux下如何修改系統時間 我們一般使用“date -s”命令來修改系統時間。比如將系統時間設定成2018年2月23日的命令如下。 #date -s 02/23/2018 將系統時間設定成下午11點12分0秒的命令如下。 #date -s 11:12:00 註意,這裏說的是系統
Linux下開源郵件系統Postfix+Extmail+Extman環境部署記錄
描述 美國 tom 即使 工作 mic ati exp pen 一、基礎知識梳理MUA (Mail User Agent) MUA 既是"郵件使用者代理人",因為除非你可以直接利用類似 telnet 之類的軟件登入郵件主機來主動發出信件,否則您就得要透過 MUA 來幫你
Linux下理解cpu系統負載
一、檢視系統負荷 如果你的電腦很慢,你或許想檢視一下,它的工作量是否太大了。 在Linux系統中,我們一般使用uptime命令檢視(w命令和top命令也行)。(另外,它們在蘋果公司的Mac電腦上也適用。) 你在終端視窗鍵入uptime,系統會返回一行資訊。
理解linux下的檔案系統和軟硬體連結
檔案系統 如何描述檔案和如何管理檔案的一個系統 我們使用ls -l命令的時候除了看到檔名之外還能看到檔案元資料。 我們可以觀察到tmp.txt檔案實際只佔用磁碟空間41位元組,但是系統給它分配了4K(1K=1024位元組)大小的空間,因為磁碟塊(最小的儲存單
linux下檔案在系統中的傳輸
1.scp scp file [email protected]:dir ##上傳(dir為絕對路徑) scp [email protected]:file dir ##下載(file為絕對路徑) 2.rs
基於Linux下Tomcat8的安裝部署
Linux下Tomcat8的安裝配置安裝tomcat前首先要安裝對應的jdk並配置Java環境。一、環境準備jdk版本:1.8工具:xShell5 xftp5說明:本文是通過Xshell5工具遠端連線Linux操作,原理一樣.二、安裝步驟1、下載安裝包官網下載地址:http:
Linux下常見檔案系統的對比
本文將對Linux下常見的幾種檔案系統進行對比,包括ext2、ext3、ext4、XFS和Btrfs,希望能幫助大家更好的選擇合適的檔案系統。 內容來自於網上找的資料以及自己的一些經驗,能力有限,錯誤在所難免,僅供參考 歷史 檔案系統 建立者 建立時間
一、基於linux下TCP\IP協議套接字(socket)初識
在網際網路的世界中,不同的電腦之間需要進行資料交流,那麼他們就需要一個統一的規範,來確定怎麼樣進行交流。根據國際標準化組織ISO定義的標準,網路結構按照不同的功能分為7層,分別是物理層、資料鏈路層、網路層、傳輸層、會話層、表示層和應用層。在TCP/IP協體系中,
10年反黑風雲:Linux下的安全攻防實錄
作者簡介:韓方 歡聚時代(YY直播) 安全中心總監 公司T4技術專家,10年以上安全領域的攻防研究和設計開發工作,對於平臺安全、應用安全、業務安全等安全領域有非常深入的研究,申請過多項安全領域相關技術專利,並發表過多篇安全領域學術文章。 曾先後主導設計和開發雲防 DDOS 系統、分散式 Web
linux下sendmail郵件系統安裝詳情
介紹 sendmail是linux系統中一個郵箱系統,如果我們在系統中配置好sendmail就可以直接使用它來發送郵箱。sendmail的配置檔案/etc/mail/sendmail.cf
最近做的一個linux下的聊天系統,遇到的一些問題及解決辦法
1.在windows下編寫的程式碼中的中文在linux控制檯下顯示亂碼 解決辦法:----Terminal--Set Character Encoding下設定成GB2312 2.用到執行緒的時候,編譯的時候要加上 -lpthread 3.當使用訊息佇
基於linux下交叉編譯minigui體會
能不用minigui就不用是對的,這段時間一直在交叉編譯minigui,困難是妥妥的多,幾乎每一個包都有問題,現在我就記錄下碰到的問題,大部分都是在網上找的解決辦法,網上還是大神多啊,下載的庫都是在minigui官網下的,有些問題是庫的問題,低版本庫有問題,高版本庫自己就
Linux下安裝pyspider 系統版本為centos7 【總結版】
國慶節的現在重新租了個阿里雲伺服器,不得不裝個pyspider用於爬蟲,但是安裝卻沒那麼順利了。這裡把安裝過程記錄一下,以及一些error 的解決方法。 【1】首先確保系統裡面裝了pip ,沒有的話可以自己百度詳細資訊,這裡只貼出我安裝時的指令: wge
Linux下如何檢視系統啟動時間和執行時間與/proc/uptime
/proc/uptime 這個檔案給出自從上次系統自舉以來的秒數,以及其中有多少秒處於空閒。這主要供uptime程式使用。比較這兩個數字能夠告訴你長期來看CPU週期浪費的比例。 ---------------------------------------------
linux下C獲取系統時間的方法
asctime(將時間和日期以字串格式表示) 相關函式 time,ctime,gmtime,localtime 表頭檔案 #include<time.h> 定義函式 char * asctime(const struct tm * ti
基於linux下的幫助命令
俗話說:Linux一切皆檔案,對Linux的操作也主要是通過命令來完成的,這不 同與Windows作業系統,點選幾下就好了,這也就意味著有更多的命令需要去學習和記憶,當然這麼多命令要記得很清楚是不可能的,所以Linux提供了 一些用於檢視幫助的命令,下面就簡單介紹一下吧。
基於Linux下的GCC編譯器的內部預巨集定義與__attribute__屬性
***************************************************************************************************************************** 作者:EasyWav
基於Linux下的GTK+2.0貪吃蛇遊戲開發
之前在很多平臺上都見過貪吃蛇的小遊戲但是唯獨在Linux 下見到這種遊戲程式設計很少,像Java 的C語言的有很多,這裡分享一下我自己參考別人的貪吃蛇程式碼移植到Linux 平臺下並且這個小程式有多個.c和.h檔案組成,雖然很多人會說這樣子會造成全域性變數混亂,以及變數宣