2012年2月3日 星期五

OpenSSH 使用 SFTP 登入並將帳戶設為 chroot 的方法

在使用 WinSCPFileZilla Client 使用 SFTP 登入 OpenSSH 伺服器,在一般的狀態下使用者可以在系統切換,基於安全透過 SFTP 登入伺服器透過 chroot() 的方法將使用者鎖定 (chroot) 特定目錄下,以下就是設定的方式。
1. 新增一個 SFTP 專用的群組
在這裡我們先建立一個 sftponly 群組
addgroup --system sftponly

2. 修改 OpenSSH 的設定檔
編輯 "/etc/ssh/sshd_config" 檔案,先找到以下 Subsystem 設定:
Subsystem sftp /usr/lib/openssh/sftp-server internal-sftp
並修改成:
Subsystem sftp internal-sftp
然後在該設定檔最後加上以下設定,其中的 ChrootDirectory 設定的 %u 代表使用者帳號:
Match group sftponly
         ChrootDirectory /home/%u
         X11Forwarding no
         AllowTcpForwarding no         ForceCommand internal-sftp

3. 建立新使用者,並加入 sftponly 群組
建立新使用者後,預設會建立 /home/USERNAME 家目錄 (Home Directory):
adduser sftpuser
由於我們在 sshd_config 設定檔中有宣告只要符合 sftponly 群組的使用者都套用 ChrootDirectory 的設定,因此必須將該使用者加入到 sftponly 群組中:
adduser sftpuser sftponly
另一個重點是,由於要套用 chroot() 的關係,該使用者登入後的根目錄必須擁有一些必要的目錄,為了節省設定上的麻煩,我們只要將該使用者的家目錄修改為根目錄 ( / ) 即可:
usermod -d / sftpuser

4. 修正使用者帳戶的家目錄權限
也是由於 chroot() 的特殊限制,這個要 chroot() 目錄的擁有者必須為 root,而且該目錄的權限也必須設定為 755 才行:
chown root.root /home/sftpuser
chmod 755 /home/sftpuser
這裡沒有設定正確的話將永遠無法成功登入,像我第一次設定時就遇到了以下錯誤: ( /var/log/auth.log )
sshd[8636]: pam_unix(sshd:session): session opened for user sftpuser by (uid=0)
sshd[8707]: fatal: bad ownership or modes for chroot directory "/home/sftpuser"
sshd[8636]: pam_unix(sshd:session): session closed for user 

5. 在使用者目錄下建立允許上傳檔案的目錄,並賦予適當的目錄權限
這一個步驟也是蠻重要的,因為 chroot() 過的目錄擁有者必須為 root 且目錄權限為 755,所以使用者登入後一定無法上傳任何檔案到這個目錄,若要讓使用者能上傳檔案,則必須先幫使用者建立好適當的目錄與設定權限才能夠上傳檔案:
cd /home/sftpuser
mkdir upload
chown sftpuser.sftpuser upload
由於該帳戶只需讓使用者上傳檔案,不允許使用者登入使用 shell,所以也建議將一些家目錄內的隱藏檔刪除,以免使用者透過 WinSCPFileZilla Client 登入時看到一些奇怪的檔案。



相關連結

在UBUNTU設定WINDOWS的磁碟權限

範例:
//192.168.88.250/wh       /wh       cifs    user=haha,password=111,iocharset=utf8,codepage=uft8,rw,file_mode=0774,dir_mode=0775,uid=1000,gid=1000        0       0
#這是在fstab裡面的設定
解說:
來源資料夾      目的資料夾     檔案格式   user=使用者帳號,password=使用者密碼,iocharset=本機端語言編碼,codepage=遠端主機語言編碼,
rw    可讀寫
file_mode 預設寫入檔案的權限
dir_mode 預設寫入資料夾的權限
uid 寫入檔案傭有者強制改為此uid
gid 寫入檔案擁有群組強制改為此gid

From LiaoHAHA提供

2012年1月31日 星期二

Linux Ubuntu 10.10 重設遺失的root密碼以及mysql密碼

Linux防健忘日誌No.35-Ubuntu 10.10 重設遺失的root密碼以及mysql密碼

到開機GRUB選單(如果沒有多系統,GRUB選單會閃得很快,請壓住SHIFT開機)

選到recovery mode之後按下"e"

找到ro single後替換成rw single init=/bin/bash

之後ctrl+x繼續讓他進入開機

這時候沒有權限上的問題,可以直接用passwd指令改掉root密碼

************************************

接著是mysql

之前LAMP一文有講過忘記mysql會相當之麻煩!
不過那是以前在windows下不好處理

到linux下甚麼都ok啦...

先幹掉所有mysql的服務

killall mysqld
讓mysqld在背景執行再不檢查安全表單的環境
mysqld -u root --skip-grant-tables &

執行進去
mysql


以下照著打,">"不用打

>use mysql
>UPDATE user SET password=password('你的密碼要含小引號') where user='root';
>FLUSH PRIVILEGES;

thx for:
http://www.wretch.cc/blog/THKAW/21910822

2012年1月19日 星期四

Ubuntu Postfix 郵件轉寄設定

編輯 vim  /etc/aliases
增加一筆轉寄3信箱紀錄
Sample:
usermail:      ooxx@gmail.com,xxoo@yahoo.com.tw,user@pchome.com.tw

儲存後執行newaliases 指令後即可運作。

2011年12月29日 星期四

Linux 各種壓縮與解壓縮指令

.tar

  • 套件:tar
  • 打包:tar cvf FileName.tar DirName
  • 解包: tar xvf FileName.tar

.gz

  • 套件:gzip
  • 壓縮:gzip FileName
  • 解壓1:gunzip FileName.gz
  • 解壓2:gzip -d FileName.gz

.tar.gz

  • 套件:gzip
  • 壓縮:tar zcvf FileName.tar.gz DirName
  • 解壓:tar zxvf FileName.tar.gz

.bz2

  • 套件:bzip2
  • 壓縮: bzip2 -z FileName
  • 解壓1:bzip2 -d FileName.bz2
  • 解壓2:bunzip2 FileName.bz2

.tar.bz2

  • 套件:bzip2
  • 壓縮:tar jcvf FileName.tar.bz2 DirName
  • 解壓:tar jxvf FileName.tar.bz2

bz

  • 壓縮:unkown
  • 解壓1:bzip2 -d FileName.bz
  • 解壓2:bunzip2 FileName.bz

.tar.bz

  • 壓縮:unkown
  • 解壓:tar jxvf FileName.tar.bz

.Z

  • 壓縮:compress FileName
  • 解壓:uncompress FileName.Z

.tar.Z

  • 壓縮:tar Zcvf FileName.tar.Z DirName
  • 解壓:tar Zxvf FileName.tar.Z

.tgz

  • 壓縮:unkown
  • 解壓:tar zxvf FileName.tgz

.tar.tgz

  • 壓縮:tar zcvf FileName.tar.tgz FileName
  • 解壓:tar zxvf FileName.tar.tgz

.zip

  • 套件:zip
  • 壓縮:zip FileName.zip DirName
  • 解壓:unzip FileName.zip

.rar

  • 套件:rar, unrar
  • 壓縮:rar a FileName.rar DirName
  • 解壓1:rar e FileName.rar
  • 解壓2:unrar e FileName.rar

.lha

  • 套件:lha
  • 壓縮:lha -a FileName.lha FileName
  • 解壓:lha -e FileName.lha

.7z

  • 套件:p7zip-full
  • 壓縮:7zr a FileName
  • 解壓:7zr x FileName.7z
Writing by凍仁翔

Ubuntu MYSQL 匯出資料庫程式與星期備份檔名語法用法

1.日期第一行 宣告日期
 now=`/bin/date`

2.MYSQL DB匯出指令
/usr/bin/mysqldump --opt --user=帳號 -p --password=密碼  資料庫名稱  > /mnt/匯出路徑/`echo $now | cut -b 1-3`-檔案定義名稱.sql

3.還原指令

mysqldump --lock-all-tables -u root -p 資料庫名稱 > example.sql


mysql -u root -p 資料庫名稱 < example.sql

Ubuntu之NFS SERVER & Client 安裝及開機自動掛載設定

Server 部份:

1. 安裝 NFS server 套件
 
    sudo apt-get install nfs-common nfs-kernel-server

2. 設定要共享的路徑和使用權限

    sudo vim /etc/exports

    #將 /nfs_root 這個路徑 share 給 all net 使用,但只可讀並且資料會同步寫入到記憶體與硬碟中。
    /nfs_root *(ro,sync,no_subtree_check)

3. 啟動 NFS server

    sudo /etc/init.d/nfs-kernel-server start

4. 檢查 NFS server 是否成功被啟動了

    sudo showmount -e localhost

    #看到底下剛剛設定的共享路徑代表成功了。
    Export list for localhost:
    /nfs_root *


註:
(1) 使用者可以用 showmount -e nfs_server_ip 看這個NFS server有哪些共享路徑。
(2) 使用者可以用 mount -t nfs nfs_server_ip:共享路徑 /mnt 來掛載NFS server提供的共享路徑。




Client 方式一:
1. 安裝 nfs client
$ sudo apt-get install nfs-common
2. 將 nas 分享的資料夾,掛上伺服器
$ sudo mount -t nfs 192.168.0.125:/test/遠端路徑  /mnt/本地端路徑
3. 若要重新開機後,自動掛載,則需修改 /etc/fstab
$ sudo nano fstab
加入
192.168.0.125:/test/遠端路徑     /mnt/本地端路徑   nfs defaults 1 1
即可
Client 方式二:

將 NFS 開機即掛載就寫入 /etc/rc.d/rc.local 即可。

mount -t nfs -o nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768 \192.168.100.254遠端IP:/home/public遠端目錄位置   /home/nfs/public本機目錄位置