저는 Samba를 사용하여 프린터, 파일 등을 공유합니다. 그런데 질문이 있어요. 공유 영역에는 쓸 수 없습니다. 사용자 디렉토리만 쓸 수 있습니다. smb.conf 파일을 첨부하겠습니다.
smb 구성 파일
#
# Smb.conf file by PepinCZ on HOME-SERVER 192.168.1.13
#
#======================= Global Settings =======================
[global]
workgroup = WORKGROUP
server string = %h
netbios name = HOME-SERVER
security = user
dns proxy = no
; name resolve order = lmhosts host wins bcast
#### Networking ####
; interfaces = 127.0.0.0/8 eth0
; bind interfaces only = yes
#### Debugging/Accounting ####
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
####### Authentication #######
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully*
pam password change = yes
map to guest = bad user
########## Domains ###########
domain logons = yes
; logon path = \\%N\profiles\%U)
; logon drive = H:
# logon home = \\%N\%U
; logon script = logon.cmd
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
; add group script = /usr/sbin/addgroup --force-badname %g
########## Printing ##########
# load printers = yes
; printing = bsd
; printcap name = /etc/printcap
; printing = cups
; printcap name = cups
############ Misc ############
; include = /home/samba/etc/smb.conf.%m
# SO_RCVBUF=8192 SO_SNDBUF=8192
# socket options = TCP_NODELAY
; message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &
# domain master = auto
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash
; winbind enum groups = yes
; winbind enum users = yes
usershare max shares = 100
usershare allow guests = yes
#======================= Share Definitions =======================
[homes]
comment = Složka uživatele %u
browseable = no
read only = no
create mask = 0700
directory mask = 0700
valid users = %S
[profiles]
comment = Uživatelské účty
path = /home/samba/profiles
guest ok = no
browseable = yes
read only = no
create mask = 0600
directory mask = 0700
[printers]
comment = Tiskárny
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Ovladače k tiskárnám
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
; write list = root, @lpadmin
[Web Server]
comment = Web Server
path = /var/www
browseable = yes
guest ok = no
read only = no
public = yes
write list = root, user, pepincz
[Server System]
comment = Systém serveru HOME-SERVER
path = /
browseable = yes
guest ok = no
read only = yes
[Disk]
comment = Úložný prostor
path = /share
browseable = yes
guest ok = no
read only = no
public = yes
write list = root, user, pepincz, tata, lucka
getfacl/공유:
getfacl: Removing leading '/' from absolute path names
# file: share
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
ls -l /공유:
0
도와주세요. 왜 작동하지 않는지 모르겠습니다. 감사합니다!
답변1
/share
다른 사용자가 디렉터리 /share
에 쓸 수 없기 때문에 공유 에 쓸 수 없습니다(루트 제외). 이 write list
옵션은 SMB 수준에만 영향을 미치며 파일 시스템 권한에는 영향을 주지 않습니다. 쓰기 위해서는 Samba와 파일 시스템에서 쓰기 액세스를 허용해야 합니다.
다음 사용자를 위한 그룹을 생성하고 그룹에 디렉터리를 제공할 수 있습니다.
chgrp writegroup /share
chmod g+w /share
또는 ACL을 사용하여 개별 사용자 액세스를 허용할 수 있습니다.
setfacl -m u:userrwx,u:pepincz:rwx,u:tata:rwx,u:lucka:rwx /share