若要讓某個開發人員除錯,可以重新啟動特定 service,但不可以 sudo 做其他事情,可以透過修改 /etc/sudoers 達成:
zero ALL=(ALL) /usr/sbin/service httpd [start|stop|restart]*
以上設定,zero 僅能使用 sudo service httpd,但是沒辦法 sudo service mysql 以及其他操作。
ps. sudoers 中的指令,必須是絕對路徑
軟體開發、伺服器和生活瑣事
若要讓某個開發人員除錯,可以重新啟動特定 service,但不可以 sudo 做其他事情,可以透過修改 /etc/sudoers 達成:
zero ALL=(ALL) /usr/sbin/service httpd [start|stop|restart]*
以上設定,zero 僅能使用 sudo service httpd,但是沒辦法 sudo service mysql 以及其他操作。
ps. sudoers 中的指令,必須是絕對路徑
Linux 帳號、密碼,通常都是放在 /etc/passwd:
zero:x:1002:1002:,,,:/home/zero:/bin/bash
該列最後一個欄位值「/bin/bash」便是預設要使用的 shell。
由於 /etc/passwd 的檔案權限,不是 root 沒辦法修改
-rw-r--r-- 1 root root 1725 May 10 13:14 passwd
若沒有 root 權限,可以透過 chsh、ypchsh 來修改預設 shell。
$ chsh
Password:
Changing the login shell for johnroyer
Enter the new value, or press ENTER for the default
Login Shell [/bin/sh]: /bin/bash
若使用者帳號設定不存在 local,則使用 ypchsh 做修改,用法相同。
安裝第二套作業系統並作多重開機,但把原來的開機程式蓋掉,開機選單一團亂,只好手動改。
Ubuntu 的開機選單設定放在 /boot/grub/grub.cfg,可以先用 update-grub (grub-mkconfig) 掃描現有可以開機的位置,並更新到 grub.cfg 設定檔:
$ sudo update-grub
# or
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
接個編輯 grub.cfg,改成需要的樣子存檔。存檔後還需要寫入 MBR,設定才能生效:
$ sudo grub-install /dev/sda
用 grep 搜尋檔案中出現的文字,通常會這樣寫:
$ grep STR fileToSeatch
不過當要搜尋的字串有特出符號,像是「-」,就會出現錯誤訊息:
$ grep "->getVal()" *
grep: invalid option -- '>'
原因是 grep 將「-」開頭的字串視為命令選項 (command option),去尋找「>get()」這個選項,而這個選項並不存在,所以導致錯誤。
在命令輸入前加上「–」,表示之後的參數都當作一般輸入而非選項 (end of option):
$ grep -- "->getVal()" *
要搜尋的字串,就算沒有空白,也建議用引號括起來。像是「>」、「&」等,沒加上引號會在 bash 解析時就發生錯誤:
$ grep > * # shoud be: grep ">" *
bash: *: ambiguous redirect
screen 可以在建立時,為 session 命名:
$ screen -S name
若日後需要修改名稱,可以先 attach session 以後,按下 C-a,在輸入指令:
:sessionname newName
之後 screen -r 就可以看到新的名稱。