[精讚] [會員登入]
380

[Linux] 安裝rsync (selinux 的設定)

在selinux enforcing 的情況下安裝rsync

此文完整連結 http://n.sfs.tw/10902

複製連結 [Linux] 安裝rsync (selinux 的設定)@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2017-03-14 23:07:50 最後編修
2017-03-14 23:04:39 By 瘦河馬
 

這篇是以 selinux=1 的狀態來寫的安裝說明

[Server] 伺服器端

SERVER 背景資料 CentOS release 5.5 (Final)
# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 21
Policy from config file:        targeted

# uname -a
Linux rsync3 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

1. 安裝

rsync 預設是住在 xinetd 中,讓他啟動
# vi /etc/xinetd.d/rsync

找到  disable = yes 修改為  disable = no,然後重新啟動 xinetd
# service xinetd restart
正在停止 xinetd:                                           [  確定  ]
正在啟動 xinetd:                                           [  確定  ]

如果無法啟動,請先檢查你是否有安裝xinetd 這個套件(預設不一定有裝)
# yum install xinetd

查看狀態,rsync為 tcp/873
tcp        0      0 *:rsync                     *:*                         LISTEN

2. 建立密碼檔

# vi /etc/rsyncd.secrets 存檔後修改權限為 600

內容為 rsync使用者:密碼,可以多伺服器共用一組帳密,也可以各伺服器使用不用帳密
dbuser:123456789
ftpuser:123456
wwwuser:1234

3. 建立設定檔

建立備份位置的設定檔 /etc/rsyncd.conf,內容設定範例:

[ldap]   <== [模組名]
    path = /backup/ldap  <== 存放位置,此例存放在 ldap 下,請先建立  /backup/ldap 這個目錄
    auth users = ldapuser <== 授權的使用者,由 /etc/rsyncd.secrets 中所定義
    uid = root  <== 執行的角色
    gid = root  <== 執行的群組
    secrets file = /etc/rsyncd.secrets <== 定義密碼檔位置
    read only = no <== 可寫入

4. 修改 SeLinux 權限

讓無權限的使用者可以寫入
# setsebool -P allow_rsync_anon_write=1

設定目錄寫入權限
# chcon -t public_content_rw_t /backup/ldap

設定密碼檔的讀寫權限
# chcon -t etc_t /etc/rsyncd.secrets

這樣就ok了

[Clinet] 使用者端

列出簡單的範例,其他的參數可以參考下面

設定方式很簡單,只有2步驟

1. 建立密碼檔

  # vi /root/rsync.secret
 裡面只要一行密碼即可:
  1234
 然後存檔離開
 修改權限
  # chmod 600 /root/rsync.secret

2. 設定要備份的指令:

  [Linux]
   # /usr/bin/rsync -aHSv --password-file=/root/rsync.secret /root/mysql_backup wwwuser@163.17.x.x::www
   其中
   /root/mysql_backup: 為要備份的本機資料夾,備份到 163.17.x.x 後會建立一個同名的 mysql_backup/ 資料夾,因此可以多台伺服器共用一組帳密
   wwwuser: 備份的帳號
   www: 備份的模組名:也就是/etc/rsyncd.conf上的模組設定

  [FreeBSD]
  freebsd 上有2點要注意的,1 rsync 程式位置不同 2 備份內容的寫法:如果要備份整個目錄的話,最後面的斜線不要加
  # /usr/local/bin/rsync -aHS --password-file=/root/rsync.secret /var/named/chroot/var/named dns1user@163.17.x.x::dns1

除錯

1. client 執行後無反應,停留很久
A..  可能是伺服端的防火牆問題,請檢查 TCP873埠

2. password file must not be other-accessible
continuing without password file
Password:
@ERROR: auth failed on module diamond

A..  請將密碼檔修改為 600 即可解決

3. @ERROR: chroot failed
A.. 可能是未建立目的目錄,請在伺服器上建立目的目錄

如果確定目錄有建也正確,你就得看看他的上層或上上層目錄是否有同樣的 selinux 權限,例如,你儲存在 /backup/path/to/module,則 backup/ path/ to/ module/ 這些目錄都要 chcon

4. building file list ... done
rsync: recv_generator: mkdir "/html" (in diamond) failed: Permission denied (13)

A.. 可能為selinux 權限錯誤,此例解決方法請參考 [Server] 第4點。

rsync參數說明

/usr/bin/rsync -rvlHpogDtS --password-file=/root/rsyncd.secrets /usr/local/apache --exclude apache /logs wwwuser@163.17.x.x::www

  -r  recurse into directories 包括目錄及子目錄
  -v increase verbosity 顯示詳細資料
  -l  copy symlinks as symlinks 直接複製連結即可
 -H --hard-links preserve hard links 保留硬連結
 -p, --perms  preserve permissions 保留權限
 -o preserve owner (super-user only) 保留擁有者
 -g, --group  preserve group 保留群組、特殊檔、設備檔
 -D --devices --specials 保留特殊檔、設備檔
 -t preserve times 保留時間
 -S handle sparse files efficiently 有效率處理稀疏檔(猜測可能是壓縮再傳吧)

 -a, --archive archive mode; same as -rlptgoD (no -H) 資料夾模式,所以 -rvlHpogDtS 可以簡化為 -avHS

遠端備份的話 -v 的參數可以不必,所以用 -aHS應該就夠了

--delete delete files that don't exist on sender 這是比較危險的指令要小心使用,當client 沒這檔時,SERVER端也會刪除以達到同步
--max-size=SIZE don’t transfer any file larger than SIZE 不傳超過SIZE 的檔案
--min-size=SIZE don’t transfer any file smaller than SIZE 不傳小於SIZE 的檔案

參考資料

[1] man rsync
[2] man rsync_selinux


原文 2011-03-16 15:50:50, 2011-03-10 14:49:09

你可能感興趣的文章

[Centos7] 安裝apache+php7+mariadb10+selinux Centos7 安裝apache+php7+mariadb10+selinux

[bc] linux 的計算機bc 如何計算帶小數點的指數 用 bc 來計算帶小數點的指數,得轉個彎才行

[bc] linux 的計算機 bc 設定小數位數、計算π、次方根 linux 的計算機 bc 設定小數位數、計算π、次方根

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

[Centos6] php5.3升級為php5.6 Centos6 + php5.6 升級

DNS壓力測試工具queryperf 要怎麼知道我安裝的DNS是否能耐受的住網路上的攻擊或大量查詢,這裡有一個免費的工具 queryperf

[Centos] opentftp + selinux 安裝及設定 Centos 安裝微型ftp伺服器:tftp伺服器

[CentOS] 設定和使用quota quota 的觀念已經很老了,不過每次都會忘記所以寫下來,有需要觀念的朋友請參看鳥哥的網站吧

[Linux] 安裝rsync (selinux 的設定) 在selinux enforcing 的情況下安裝rsync

[Centos7] 新的防火牆firewalld Centos7新的防火牆firewalld 和前面的iptables有很大的不同

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。請注意:留言不可帶有網址,會被濾掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

設計的工作絕不接受比價 拿買陽春麵的價格想買牛肉麵,寧願倒掉也不賣

外匯課程經驗 有天遇到某個朋友的正妹朋友,說她有個很棒的外匯投資課程,要我們去聽,只收場地費200大洋。她又說續效最差一個月也有1%,誰還在苦哈哈上班?

最值得學的電腦技能 什麼是最值得學的電腦技能?程式設計?美工繪圖?系統網路?還是…? 都不是!個人覺得一個最值得學的電腦技能就

在Centos7 下安裝 Wildfly10 wildfly以前叫JBoss,2014.11.20改名叫Wildfly,起始版本是Wildfly8,現在已經出到Wil