顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2008年7月31日 星期四

Linux權限設定

一、設定目錄與檔案使用權限
請先用 ls -l 指令觀看目前檔案狀況

d rwx rwx rwx
d:檔案屬性,d表示這是一個目錄;-表示這是一個普通檔案;l表示一個符號連結檔案
第一個rwx:檔案擁有者的權限
第二個rwx:同群組使用者的權限
第三個rwx:其他使用者的權限

r(Read,讀取);w(Write,寫入);x(eXecute,執行)

使用數字法更改權限

●r:對應數值為 4
●w:對應數值為2
●x:對應數值為1

rwx合起來就是4+2+1=7

Ex.
●-rwx------:等於數字標示700
●-rwxr--r--:等於數字標示744
●-rw-rw-r-x:等於數字標示665
●drwx--x--xx:等於數字標示711

用chmod指令可來改變檔案與目錄的權限
chmod 777 filename

使用文字法更改權限

第一個rwx:檔案擁有者的權限,代號為u(User)
第二個rwx:同群組使用者的權限,代號為g(Group)
第三個rwx:其他使用者的權限,代號為o(Other)

Ex.
●u+rw:為檔案擁有者加入讀取和寫入的權限
●g-x:將同群組使用者的執行權取消
●u+rwx,g-w,o-w:加入檔案或目錄擁有者有完整的權限,並取消群組與其他使用者的寫入權限

chmod u-s,g-s,o-s filename

二、改變擁有權

只有root管理者帳號,可以將檔案的擁有者移轉給其他人。
使用chown指令便可以修改檔案或目錄的擁有者及所屬群組。

chown linda.users filename
linda:指定該檔案的擁有者
users:指定該檔案所屬的群組

◎想一次更改整個目錄下的所有檔案權限,則請使用參數“-R“啟用遞迴參數。

2007年5月14日 星期一

Linux基本指令--帳號管理

一、變換身份為管理者

[linda@free linda]$su
[linda@free linda]$sudo su -
Password:
[root@free linda]# ←轉變成root帳號。若輸入exit指令,則可再回原來的帳號!
↖請注意此處仍是在linda的目錄


[linda@free linda]$su -root
Password:
[root@free root]# ←完全轉變為root

切換成helen帳號
[linda@free linda]$su - helen
Password:
[helen@free helen]$ ←轉變成helen帳號

二、建立使用者帳號 /usr/sbin/useradd
單獨建立帳號
[root@free root]#adduser linda ←建立linda帳號
[root@free root]#passwd linda ←設定密碼
Changing password for user linda
New UNIX password: ←輸入密碼
Retype new UNIX password: ←再輸入一次
passwd: all authentication tokens updated successfully. ←設定成功

note:帳號的英文大小寫是有差別的;linda不等於Linda

建立samba密碼
[root@free root#]#smbpasswd -a linda←新增 linda 使用者的密碼
New SMB password:←指定 linda 在Samba伺服器的密碼
Retype new SMB password:←再一次確認密碼

重新啟動Samba伺服器,讓設定值生效:
[root@free root#]#/etc/rc.d/init.d/smb restart

使用者帳號內容,直接修改/etc/passwd和shadow檔案
●先了解passwd檔案的內容格式:(有七個欄位)
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
....
linda:x:500:500:linda:/home/linda:/bin/bash
帳號名稱:使用者密碼:使用者識別碼:群組識別碼:使用者相關資訊 : 使用者家目錄:使用者環境

note:/etc/passwd檔案預設的權限是"rw-r--r--",如果取消對/etc/paswd的讀取權限,會造成一般使用者無法以ssh登入。

●由於passwd檔案並不安全,因此在安裝Linux時,系統內定會啟動投影密碼的功能。每當我們用useradd指令建立使用者帳號,系統不僅更動passwd檔案,同時還會修改/etc/shadow檔案。

了解shadow檔案的部份內容:(有九個欄位)
root:$1$387ddfeK343jaDTXGdo0e138djf3lLEDA93d:12641:0:99999:7:::
....
linda:$32$22vda.dtidlKJSdawelLkED3f228Kde22kj3:12641:0:99999:7:::
使用者名稱:使用者密碼:3~9欄為密碼變動相關欄位

三、停用與移除使用者帳號
停用帳號
linda:x:500:500:linda:/home/linda:/bin/bash
將第二欄的“x“改為“*“ 或是 在帳號最前面加上“#“

刪除帳號
[root@free root]#userdel -r linda
加上參數 “-r“表示刪除帳號時,一併將該帳號的家目錄及郵件檔案(位於/var/spool/mail目錄中的同名檔案)都刪除。若不加“-r“參數,則只會刪帳號的相關目錄。

四、自訂群組 /etc/group
先了解/etc/group檔案
root:x:0:root
....
student:x:500:
teacher:x:501:
群組名稱:密碼:群組識別碼:使用者帳號(空白)

建立群組
[root@free root]#groupadd -g 500 student

參數“-g“用來指定群組識別碼,0~499請保留給系統使用。若省略此參數,則系統會自動指定GID,使用從編號500開始,尚未用掉的號碼。

變更所隸屬的群組
[root@free root]#chown -R .teacher /home/student
將student家目錄與目錄下所有檔案的隸屬群組,皆改為teacher

2007年3月27日 星期二

臭蟲追蹤系統Bug tracking system

參考資料來源
http://solar.ee.cyu.edu.tw/linux/opentools/c1359.html

Bug tracking system臭蟲追蹤也是一種程式歷史紀錄, 一個程式開發一定會有bug,對於後來維護人員,需要知道發生什麼原因, 怎麼解決的,是誰負責的等等資訊。 gnats是GNU發展的一套臭蟲追蹤系統,也包含了臭蟲回報(bug report)

通常臭蟲回報是developer與tester之間溝通的管道與記錄, 但也可以用在顧客的回報系統中, 這在customer這邊是非常快速的紀錄系統,客戶可以直接從web回報問題, 問題的紀錄也同時進入公司內部的系統。 產品經理可以根據這個在系統上的資訊,指派一個工程師來負責, 非常方便。所以他不僅可以用做程式臭蟲追蹤,也可以成為專案管理軟體。

gnats可以用普通的email就可以自動做回報的工作,也可以client/server的回報, 一個問題回報在gnats的術語叫PR(problem report)。一個PR通常有ID識別, 日期,狀態(open/closed),機密等級(confidential)等等元素

PR記錄也可以彙整進RDBMS(資料庫)


重要目錄與檔案

GNATS_ROOT

GNATS_ROOT是gnats管理的database目錄所在 如果是從source自己compile安裝的在 prefix/share/gnats/gnats-db 如果是rpm或deb這樣的distribution套件方法安裝 也可能在/var/lib/gnats/gnats-db下 這下面的檔案是gnats用來管理的

gnats-adm       目錄
gnats-queue 目錄
pending
gnats-adm下面的檔案很重要
categories
config 這個檔案記錄了gnats的一些default值 重要
responsible
states
submitters

SUPPORT SITE

安裝gnats prefix/share/gnats或/var/lib/gnats放了需要管理的project名單(categories) 裡面的檔案就是host名字也就是site(因為這是拿來做tech support) 每個檔案裡放了需要回報的專案名稱 例如我有一個檔 /var/lib/gnats/zeus的內容

gcc
gdb
表示zues這台機器(site)管了gcc gdb這兩個project的問題回報

Email Alias

使用email回報時必需用email alias,在`/etc/aliases'裡 , 在gnats的機器建立一個email alias, 用像vacation的方法pipe到queue-pr這隻script來

gnats-admin:    gnats
bugs: "| /usr/lib/gnats/queue-pr -q"
query-pr: "| /usr/lib/gnats/mail-query"

或者小心目錄不一樣,總之要找到queue-pr mail-query的程式所在

bugs: "| exec-prefix/libexec/gnats/queue-pr -q"
gnats這個帳號應該已經設起來了,Home 目錄可以設在GNATS_ROOT bugs可以亂取名字的只是用email的To:這個欄位要填的收件人就對 有可能是/etc/mail/aliases,設完後給個
# newaliases

GNATS Demon

使用client/server方法時必需有gnatsd這隻deamon

/etc/services
support 1529/tcp # GNATS

/etc/inetd.conf
support stream tcp nowait gnats /usr/sbin/tcpd /usr/lib/gnats/gnatsd
同樣的目錄可能不同distribution不一樣

client - client端的使用者命令

Email回報PR

有下面四隻程式會被用到

send-pr    回報問題的人用的(tester, customer)
query-pr developer查詢整個database,通常是給查詢條件(regular express),
找出一群符合條件的PR。例如PR狀態是還open的(表示問題還沒解決)。
edit-pr developer修改PR(problem report)
view-pr developer看某一特定pr
一個PR的應該有大致的元件如下 1. Mail headers 像電子郵件開頭的協定字串。 2. GNATS fields 一個field就是像資料庫內的欄位,例如姓名,年齡這種欄位。 由'>'開始最後有個':'. 一個field的資料形態有可能是 文字(TEXT), 數字(ENUMERATED其實是c裡面的enum所以可以是代表數字的文字), 或多行文字(MULTITEXT), 在命令列上下send-pr,會去叫出vi來
SEND-PR: -*- send-pr  -*-
SEND-PR: Lines starting with `SEND-PR' will be removed
SEND-PR: automatically as well as all comments (the text
SEND-PR: below enclosed in `<' and `>').
SEND-PR:
SEND-PR: Please consult the document `Reporting Problems
SEND-PR: Using send-pr' if you are not sure how to fill out
SEND-PR: a problem report.
SEND-PR:
SEND-PR: Choose from the following categories:
SEND-PR: apache bfd binutils
SEND-PR: bison build byacc
To: support-site
Subject: complete this field
From: your-login@your-site
Reply-To: your-login@your-site
X-send-pr-version: send-pr 3.11
X-GNATS-Notify:


>Submitter-Id: your submitter-id
>Originator: your name here
>Organization: your organization
>Confidential:[ yes | no ] (one line) ->回答yes/no只有一行不能多行
>Synopsis: synopsis of the problem (one line)
>Severity: [non-critical | serious | critical](one line)
>Priority: [ low | medium | high ] (one line)
>Category: name of the product (one line)
>Class: [sw-bug | doc-bug | change-request | support]
>Release: release number (one line)
>Environment: machine, os, target, libraries (multiple lines)
......
SEND-PR:是註解欄會自動消失的,不會進database裡面,跟那個CVS很像。 apache bfd binutils.... 這些是在prefix/share/gnats下的檔案內容的project, 這也是>Category要填的值, 其中在郵件的`Subject:' 和在GNATS欄位中的`>Synopsis:' 通常是一樣的值, 只是mail的主題,通常是問題摘要
To:            bugs@xxx (就是上面email aliases的address)
Subject: 就是問題的摘要
From: xxx@host

>Submitter-Id: 系統會自動給這個PR 一個ID
>Originator: 你的名字
>Organization: 你的單位
>Confidential:[ yes | no ] (one line)
>Synopsis: 可以跟Mail Header的Subject一樣
>Severity: [non-critical | serious | critical](one line)
>Priority: [ low | medium | high ] (one line)
>Category: name of the product (one line)
>Class: [sw-bug | doc-bug | change-request | support]
>Release: release number (one line)
>Environment: machine, os, target, libraries (multiple lines)
......
其餘欄位就照著提示填, 把每一欄位填完後離開editor會問你要不要送出

用query-pr去看gnats database結果

query-pr
--full 全部資訊都輸出
--summary 只印出重要資訊
--sql 輸出成SQL格式

-c "category" (專案名稱)
-C "confidential"
-e "severity"
-r "responsible" (誰負責的)
-s "state" (open/closed/
gnats-id (每個PR都有個ID來識別)

edit-pr gnats-id
view-pr gnats-id
emacs上有gnats的命令,請下send-pr命令
M-x send-pr
M-x query-pr

Client/Server回報PR

後記:公司的Bug tracking system要增加一個專案名稱,搞了我三天,原來是linux的權限問題,因為這個系統已經架好,只是要增加名稱,原來的負責架設的人終於出差回來,所以問題也迎刃而解,還是要好好學習linux。




2007年3月13日 星期二

安裝 Trustix Linux2.6.17.14-2tr + Php5.2.0 + Mysql 4.1.22+ Apache2.0.59

因公司部門內要架設一個部門網站!
所以就嘗試用Trustix Linux來架設!

硬體配備:
CPU:P3-733MHz
Memory:128 + 64 = 192 MB
HDD:20 GB

一、安裝trustix linux,可至官方網站下載
http://www.trustix.net/papers/whitepaper.html
基本操作手冊
http://www.trustix.org/wiki/index.php/Main_Page

二、安裝Apache-2.0.59-1tr
#swup --install apache (會安裝最新的版本)
#apachectl start (啟動apache)

三、安裝php-5.2.0-3tr
#swup --install php (會安裝最新的版本)
#swup --install php-gd (圖形介面)

四、安裝mysql-4.1.22-1tr
#swup --install mysql (會安裝最新的版本)
#swup --install php-mysql

五、編輯 /etc/httpd/conf.d/ 下的"httpd-php.conf" or "httpd-mod_php4.conf",
把前面「#」全部拿掉,save。

#service httpd restart (改完任何設定,都要重新啟動apache)

六、證明php有支援,建立一個phpinfo.php的檔案
#vi /home/httpd/html/phpinfo.php
with the following code


在網址列打:http://網址/phpinfo.php 成功即可

七、設定php.ini檔
#vi /etc/httpd/php.ini
(1)把 short_open_tag= Off ===> On
允許 "< ?" 代替 "<?PHP"
(2)把 ;extension = mysql.so ===> 把 ;拿掉
(3)把 extension_dir="./" ===> 改成 "/usr/share/php"
(4)把 ;extension= gd.so === >把 ;拿掉
(GD是圖形介面,要讓GD support in php,當你想要使用php scripts 操作圖形檔案)
(5)memory_limit = 32M
設定 memory_limit 較高的數字