Condivisione cartella pubblica

Vorrei condividere in rete e in sola lettura la cartella “Pubblica”, sono andato su Impostazioni → Condivisione → Condivisione multimediale, ho messo “On” e ho aggiunto la cartella che voglio condividere.

Il secondo computer connesso alla rete non me la vede, come mai?

Il secondo pc è windows o fedora o altro?

prova a fermare il firewall…e riprova

Il secondo PC è debian wheezy con gnome.

Io vado in attività, cerco firewall, apro l’applicazione e poi cosa devo fare? Configurazione = Salvata?

systemctl stop firewalld

Ho dato il comando (con il sudo) ma niente, non riesco a vedere la cartella condivisa ne dal secondo computer (quello con debian) e nemmeno se vado su “esplora rete” dal computer che possiede la cartella (quello che sto usando ora con fedora), riesco solo a vedere la cartella condivisa del secondo computer (quello con debian).

Come fai la condivisione con debian?

Con debian ho dovuto installare samba e configurarlo correttamente, in questo modo riesco a vedere la cartella condivisa sia con linux che con windows.

Con fedora ho visto che nelle impostazioni c’è una parte dedicata alla condivisione che è decisamente più intuitiva che editare “smb.conf” e quindi pensavo di utilizzarla al posto di samba.

No, configura anche in fedora samba e vedrai che le condivisioni andranno bene anche con windows.

[quote=dega180]
Con fedora ho visto che nelle impostazioni c’è una parte dedicata alla condivisione che è decisamente più intuitiva che editare “smb.conf” e quindi pensavo di utilizzarla al posto di samba.[/quote]
Installa system-config-samba, è abbastanza facile da usare.

Uffa, ho installato samba però non riesco a vedere la cartella in rete.
Ecco l’smb.conf

[code]# This is the main Samba configuration file. For detailed information about the

options listed here, refer to the smb.conf(5) manual page. Samba has a huge

number of configurable options, most of which are not shown in this example.

The Official Samba 3.2.x HOWTO and Reference Guide contains step-by-step

guides for installing, configuring, and using Samba:

http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf

The Samba-3 by Example guide has working examples for smb.conf. This guide is

generated daily: http://www.samba.org/samba/docs/Samba-Guide.pdf

In this file, lines starting with a semicolon (:wink: or a hash (#) are

comments and are ignored. This file uses hashes to denote commentary and

semicolons for parts of the file you may wish to configure.

Note: Run the “testparm” command after modifying this file to check for basic

syntax errors.

#---------------

Security-Enhanced Linux (SELinux) Notes:

Turn the samba_domain_controller Boolean on to allow Samba to use the useradd

and groupadd family of binaries. Run the following command as the root user to

turn this Boolean on:

setsebool -P samba_domain_controller on

Turn the samba_enable_home_dirs Boolean on if you want to share home

directories via Samba. Run the following command as the root user to turn this

Boolean on:

setsebool -P samba_enable_home_dirs on

If you create a new directory, such as a new top-level directory, label it

with samba_share_t so that SELinux allows Samba to read and write to it. Do

not label system directories, such as /etc/ and /home/, with samba_share_t, as

such directories should already have an SELinux label.

Run the “ls -ldZ /path/to/directory” command to view the current SELinux

label for a given directory.

Set SELinux labels only on files and directories you have created. Use the

chcon command to temporarily change a label:

chcon -t samba_share_t /path/to/directory

Changes made via chcon are lost when the file system is relabeled or commands

such as restorecon are run.

Use the samba_export_all_ro or samba_export_all_rw Boolean to share system

directories. To share such directories and only allow read-only permissions:

setsebool -P samba_export_all_ro on

To share such directories and allow read and write permissions:

setsebool -P samba_export_all_rw on

To run scripts (preexec/root prexec/print command/…), copy them to the

/var/lib/samba/scripts/ directory so that SELinux will allow smbd to run them.

Note that if you move the scripts to /var/lib/samba/scripts/, they retain

their existing SELinux labels, which may be labels that SELinux does not allow

smbd to run. Copying the scripts will result in the correct SELinux labels.

Run the “restorecon -R -v /var/lib/samba/scripts” command as the root user to

apply the correct SELinux labels to these files.

#--------------

#======================= Global Settings =====================================

[global]

----------------------- Network-Related Options -------------------------

workgroup = the Windows NT domain name or workgroup name, for example, MYGROUP.

server string = the equivalent of the Windows NT Description field.

netbios name = used to specify a server name that is not tied to the hostname.

interfaces = used to configure Samba to listen on multiple network interfaces.

If you have multiple interfaces, you can use the “interfaces =” option to

configure which of those interfaces Samba listens on. Never omit the localhost

interface (lo).

hosts allow = the hosts allowed to connect. This option can also be used on a

per-share basis.

hosts deny = the hosts not allowed to connect. This option can also be used on

a per-share basis.

max protocol = used to define the supported protocol. The default is NT1. You

can set it to SMB2 if you want experimental SMB2 support.

workgroup = workgroup
server string = Samba Server Version %v

; netbios name = dega180-laptop

; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.

; max protocol = SMB2

--------------------------- Logging Options -----------------------------

log file = specify where log files are written to and how they are split.

max log size = specify the maximum size log files are allowed to reach. Log

files are rotated when they reach the size specified with “max log size”.

# log files split per-machine:
log file = /var/log/samba/log.%m
# maximum size of 50KB per log file, then rotate:
max log size = 50

----------------------- Standalone Server Options ------------------------

security = the mode Samba runs in. This can be set to user, share

(deprecated), or server (deprecated).

passdb backend = the backend used to store user information in. New

installations should use either tdbsam or ldapsam. No additional configuration

is required for tdbsam. The “smbpasswd” utility is available for backwards

compatibility.

security = share

; passdb backend = tdbsam

----------------------- Domain Members Options ------------------------

security = must be set to domain or ads.

passdb backend = the backend used to store user information in. New

installations should use either tdbsam or ldapsam. No additional configuration

is required for tdbsam. The “smbpasswd” utility is available for backwards

compatibility.

realm = only use the realm option when the “security = ads” option is set.

The realm option specifies the Active Directory realm the host is a part of.

password server = only use this option when the “security = server”

option is set, or if you cannot use DNS to locate a Domain Controller. The

argument list can include My_PDC_Name, [My_BDC_Name], and [My_Next_BDC_Name]:

password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]

Use “password server = *” to automatically locate Domain Controllers.

; realm = MY_REALM

; password server =

----------------------- Domain Controller Options ------------------------

security = must be set to user for domain controllers.

passdb backend = the backend used to store user information in. New

installations should use either tdbsam or ldapsam. No additional configuration

is required for tdbsam. The “smbpasswd” utility is available for backwards

compatibility.

domain master = specifies Samba to be the Domain Master Browser, allowing

Samba to collate browse lists between subnets. Do not use the “domain master”

option if you already have a Windows NT domain controller performing this task.

domain logons = allows Samba to provide a network logon service for Windows

workstations.

logon script = specifies a script to run at login time on the client. These

scripts must be provided in a share named NETLOGON.

logon path = specifies (with a UNC path) where user profiles are stored.

; domain master = yes
; domain logons = yes

# the following login script name is determined by the machine name
# (%m):

; logon script = %m.bat
# the following login script name is determined by the UNIX user used:
; logon script = %u.bat
; logon path = \%L\Profiles%u
# use an empty path to disable profile support:
; logon path =

# various scripts can be used on a domain controller or a stand-alone
# machine to add or delete corresponding UNIX accounts:

; add user script = /usr/sbin/useradd “%u” -n -g users
; add group script = /usr/sbin/groupadd “%g”
; add machine script = /usr/sbin/useradd -n -c “Workstation (%u)” -M -d /nohome -s /bin/false “%u”
; delete user script = /usr/sbin/userdel “%u”
; delete user from group script = /usr/sbin/userdel “%u” “%g”
; delete group script = /usr/sbin/groupdel “%g”

----------------------- Browser Control Options ----------------------------

local master = when set to no, Samba does not become the master browser on

your network. When set to yes, normal election rules apply.

os level = determines the precedence the server has in master browser

elections. The default value should be reasonable.

preferred master = when set to yes, Samba forces a local browser election at

start up (and gives itself a slightly higher chance of winning the election).

; local master = no
; os level = 33
; preferred master = yes

#----------------------------- Name Resolution -------------------------------

This section details the support for the Windows Internet Name Service (WINS).

Note: Samba can be either a WINS server or a WINS client, but not both.

wins support = when set to yes, the NMBD component of Samba enables its WINS

server.

wins server = tells the NMBD component of Samba to be a WINS client.

wins proxy = when set to yes, Samba answers name resolution queries on behalf

of a non WINS capable client. For this to work, there must be at least one

WINS server on the network. The default is no.

dns proxy = when set to yes, Samba attempts to resolve NetBIOS names via DNS

nslookups.

; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes

; dns proxy = yes

--------------------------- Printing Options -----------------------------

The options in this section allow you to configure a non-default printing

system.

load printers = when set you yes, the list of printers is automatically

loaded, rather than setting them up individually.

cups options = allows you to pass options to the CUPS library. Setting this

option to raw, for example, allows you to use drivers on your Windows clients.

printcap name = used to specify an alternative printcap file.

; load printers = yes
cups options = raw

; printcap name = /etc/printcap
# obtain a list of printers automatically on UNIX System V systems:
; printcap name = lpstat
; printing = cups

--------------------------- File System Options ---------------------------

The options in this section can be un-commented if the file system supports

extended attributes, and those attributes are enabled (usually via the

“user_xattr” mount option). These options allow the administrator to specify

that DOS attributes are stored in extended attributes and also make sure that

Samba does not change the permission bits.

Note: These options can be used on a per-share basis. Setting them globally

(in the [global] section) makes them the default for all shares.

; map archive = no
; map hidden = no
; map read only = no
; map system = no
; encrypt passwords = yes
; guest ok = no
; guest account = nobody
; store dos attributes = yes

#============================ Share Definitions ==============================

[homes]
comment = Home Directories
browseable = no
; writable = No
; valid users = %S
; valid users = MYDOMAIN%S

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
; guest ok = no
; writable = No
printable = yes

Un-comment the following and create the netlogon directory for Domain Logons:

; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no

Un-comment the following to provide a specific roving profile share.

The default is to use the user’s home directory:

; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes

A publicly accessible directory that is read only, except for users in the

“staff” group (which have write permissions):

; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff

[Pubblici]
path = /home/dega180/Pubblici
; read only = yes
; browseable = yes
guest ok = yes[/code]

Se esegui questo script

$ function bashCode { cat "$1" | sed -e 's/#.*//' | sed -e 's/;.*//' | sed 's/ \t]*$//' | sed '/^$/d'; } $ bashCode /etc/samba/smb.conf
rendi l’output più leggibile (rimuovi i commenti).

Nel tuo caso dovresti ottenere:

[global] workgroup = workgroup server string = Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 security = share cups options = raw [homes] comment = Home Directories browseable = no [printers] comment = All Printers path = /var/spool/samba browseable = no printable = yes [Pubblici] path = /home/dega180/Pubblici guest ok = yes
Selinux come sta? Mi sembra che, con le impostazioni di default, non permetta la condivisione di sottocartelle di /home. Prova a settarlo come permissivo, e vedi se funziona, (poi, ovviamente, risettalo comunque a “enforcing”).

N.B. Se il problema fosse selinux, bisognerebbe settare a true il booleano samba_enable_home_dirs utilizzando il programma “Gestione di SELinux” (/usr/bin/system-config-selinux).
N.B. 2 Inoltre, per far digerire a selinux la condivisione effettuata con samba, bisogna settare il giusto contesto:

[code]# chcon -Rt samba_share_t /home/dega180/Pubblici

systemctl restart smbd.service[/code]

Ho messo true a samba_enable_home_dirs e ho provato a mettere true anche a samba_export_all_ro (che dovrebbe permettere a samba di condividere in lettura qualsiasi file e cartella) ho dato il comando chcon e ho riavviato il server di samba ma niente, se vado su “esplora rete” non riesco nemmeno a vedere l’icona che “rappresenta” il mio computer, vedo solo l’icona “DESKTOP” che rappresenta il computer fisso con debian e al cui interno si trovano la cartella condivisa e la stampante.
PS: ho provato anche a mettere il SELinux come Permissivo ma niente, non riesco a vedere la condivisione.

Nessuno qua ha fedora 20 con gnome ed è riuscito a condividere la sua cartella con samba? Se c’è qualcuno, mi può dire come ha fatto a creare la condivisione?

Con system-config-samba puoi configurare samba, se non lo hai installato #yum install system-config-samba (quando lo ho installato, avviandolo, dava errore ma al primo riavvio è partito tranquillamente) puoi lanciarlo da terminale ma lo trovi anche nel menu come “Samba”.
Una volta configurato, o verificato, il tutto dal terminale come root dai i comandi# systemctl stop firewalld per fermare il firewall; # setenforce 0 per rendere selinux permissivo;# systemctl restart smb nmb per riavviare i servizi di samba.

Se tutto funziona riavvia il firewall# systemctl start firewalld ricontrolla il funzionamento e poi potrai riattivare selinux# setenforce 1 e ricontrollare.
Riattivandoli uno per volta si può capire chi dei 2 si mette di traverso a Samba.l,

Finalmente! Sono riuscito a capire che è il firewall che da dei problemi, ora però tutte le volte che accendo il computer devo spegnere il firewall, non c’è un modo per non fargli bloccare samba?

Apri il firewall

$ /usr/bin/firewall-config

e, dopo aver dato la password di root, alla scheda servizi metti la spunta su samba e su samba-client.
Attento, perché se lo fai con la configurazione “In esecuzione” funziona da subito, ma al prossimo riavvio torna come prima; quindi ripeti l’operazione dopo aver verificato che samba funziona in questo modoe aver selezionato, come configurazione del firewall, “Salvata” (in alto a sinistra, più o meno).

Ok perfetto, ora vedo il server e anche la cartella “Pubblici” che ho condiviso.

Clicco due volte sulla cartella e mi si apre una finestrella con scritto: “Non è stato possibile montare la condivisione Windows: Permesso negato”

Vi rimetto l’smb.conf

[global] workgroup = workgroup netbios name = DEGA180-LAPTOP server string = Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 security = share cups options = raw usershare allow guests = Yes [homes] comment = Home Directories browseable = no [printers] comment = All Printers path = /var/spool/samba browseable = no printable = yes [Pubblici] path = /home/dega180/Pubblici guest ok = yes read only = yes
ho provato a disabilitare il selinux ma non riesco comunque ad accedere alla cartella condivisa.

Probabilmente accedi alla cartella con un utente diverso da dega180 e, di conseguenza, non hai i permessi per entrare ed operare nella directory /home/dega180/Pubblici.
Per verificarlo puoi postare l’output di questo comando?$ ll /home/dega180 |grep Pubblici

Opss rispondo in ritardo, scusate sono stato occupato.

[quote=andreamal]Probabilmente accedi alla cartella con un utente diverso da dega180 e, di conseguenza, non hai i permessi per entrare ed operare nella directory /home/dega180/Pubblici.
Per verificarlo puoi postare l’output di questo comando?$ ll /home/dega180 |grep Pubblici[/quote]

[dega180@dega180-laptop ~]$ ll /home/dega180 |grep Pubblici drwxr-xr-x. 2 dega180 dega180 4096 3 gen 19.08 Pubblici