Форум русскоязычного сообщества Ubuntu


Автор Тема: Samba: Права доступа к конкретным файлам  (Прочитано 2080 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Prtoy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Здравствуйте.
Ubuntu Server 20.04.1 LTS.

Сервер введён в домен Windows, с посощью samba расшарены папки.
Права на папках стоят такие:
[test]
    comment = Test
    path = /test
    public = yes
    writable = yes
    read only = no
    create mask = 0777
    directory mask = 0777
    force create mode = 0777
    force directory mode = 0777
    valid users = user1 user2 user3
Таким образом, указанные юзеры могут читать, создавать и удалять файлы в этой папке. Но также, в этой папке есть пара файлов, которые нужны для чтения, но удалять их нельзя. Почему-то, если я выставляю права для этих файлов в линуксе:
chmod 444 /test/file1.txtТо при доступе из Windows пользователи всё равно могут удалять файлы (хотя изменять их содержимое не могут). Подскажите, как настроить, чтобы именно указанные файлы в этой папке были только для чтения из Windows? Перемещать их в другую папку нельзя...
« Последнее редактирование: 15 Января 2021, 14:00:47 от Prtoy »

Dzhoser

  • Гость
Re: Samba: Права доступа к конкретным файлам
« Ответ #1 : 15 Января 2021, 13:59:29 »
Потому что Windows чихать хотела на Linuxовые права

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: Samba: Права доступа к конкретным файлам
« Ответ #2 : 16 Января 2021, 01:45:01 »
    create mask = 0777
    directory mask = 0777
    force create mode = 0777
    force directory mode = 0777
Мусор.

    writable = yes
    read only = no
Тавтология. Это одна и та же опция.
Цитировать
       writable

           This parameter is a synonym for writeable.

       writeable (S)

           Inverted synonym for read only.

           Default: writeable = no
Подскажите, как настроить, чтобы именно указанные файлы в этой папке были только для чтения из Windows? Перемещать их в другую папку нельзя...
Установить на них права из Windows.

И вообще, показывайте
samba-tool testparm --verbose --suppress-prompt
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Prtoy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: Samba: Права доступа к конкретным файлам
« Ответ #3 : 16 Января 2021, 09:57:23 »
samba-tool testparm --verbose --suppress-prompt
samba-tool testparm --verbose --suppress-prompt
Unknown parameter encountered: "acl compatibility"
Ignoring unknown parameter "acl compatibility"
INFO 2021-01-16 09:48:34,724 pid:18951 /usr/lib/python3/dist-packages/samba/netcmd/testparm.py #96: Loaded smb config files from /etc/samba/smb.conf
INFO 2021-01-16 09:48:34,724 pid:18951 /usr/lib/python3/dist-packages/samba/netcmd/testparm.py #97: Loaded services file OK.
# Global parameters
[global]
        abort shutdown script =
        add group script =
        additional dns hostnames =
        add machine script =
        addport command =
        addprinter command =
        add share command =
        add user script =
        add user to group script =
        afs token lifetime = 604800
        afs username map =
        aio max threads = 100
        algorithmic rid base = 1000
        allow dcerpc auth level connect = No
        allow dns updates = secure only
        allow insecure wide links = No
        allow nt4 crypto = No
        allow trusted domains = Yes
        allow unsafe cluster upgrade = No
        apply group policies = No
        async smb echo handler = No
        auth event notification = No
        auto services =
        binddns dir = /var/lib/samba/bind-dns
        bind interfaces only = No
        browse list = Yes
        cache directory = /var/cache/samba
        change notify = Yes
        change share command =
        check password script =
        cldap port = 389
        client ipc max protocol = default
        client ipc min protocol = default
        client ipc signing = default
        client lanman auth = No
        client ldap sasl wrapping = sign
        client max protocol = default
        client min protocol = SMB2_02
        client NTLMv2 auth = Yes
        client plaintext auth = No
        client schannel = Yes
        client signing = default
        client use spnego principal = No
        client use spnego = Yes
        cluster addresses =
        clustering = No
        config backend = file
        config file =
        create krb5 conf = Yes
        ctdbd socket =
        ctdb locktime warn threshold = 0
        ctdb timeout = 0
        cups connection timeout = 30
        cups encrypt = No
        cups server =
        dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver
        deadtime = 10080
        debug class = No
        debug encryption = No
        debug hires timestamp = Yes
        debug pid = No
        debug prefix timestamp = No
        debug uid = No
        dedicated keytab file =
        default service =
        defer sharing violations = Yes
        delete group script =
        deleteprinter command =
        delete share command =
        delete user from group script =
        delete user script =
        dgram port = 138
        disable netbios = No
        disable spoolss = Yes
        dns forwarder =
        dns proxy = No
        dns update command = /usr/sbin/samba_dnsupdate
        dns zone scavenging = No
        domain logons = No
        domain master = No
        dos charset = CP850
        dsdb event notification = No
        dsdb group change notification = No
        dsdb password event notification = No
        enable asu support = No
        enable core files = Yes
        enable privileges = Yes
        encrypt passwords = Yes
        enhanced browsing = Yes
        enumports command =
        eventlog list =
        get quota command =
        getwd cache = Yes
        gpo update command = /usr/sbin/samba-gpupdate
        guest account = nobody
        homedir map =
        host msdfs = Yes
        hostname lookups = No
        idmap backend = tdb
        idmap cache time = 604800
        idmap gid =
        idmap negative cache time = 120
        idmap uid =
        include system krb5 conf = No
        init logon delay = 100
        init logon delayed hosts =
        interfaces =
        iprint server =
        keepalive = 300
        kerberos encryption types = all
        kerberos method = default
        kernel change notify = Yes
        kpasswd port = 464
        krb5 port = 88
        lanman auth = No
        large readwrite = Yes
        ldap admin dn =
        ldap connection timeout = 2
        ldap debug level = 0
        ldap debug threshold = 10
        ldap delete dn = No
        ldap deref = auto
        ldap follow referral = Auto
        ldap group suffix =
        ldap idmap suffix =
        ldap machine suffix =
        ldap max anonymous request size = 256000
        ldap max authenticated request size = 16777216
        ldap max search request size = 256000
        ldap page size = 1000
        ldap passwd sync = no
        ldap replication sleep = 1000
        ldap server require strong auth = Yes
        ldap ssl = start tls
        ldap ssl ads = No
        ldap suffix =
        ldap timeout = 15
        ldap user suffix =
        lm announce = Auto
        lm interval = 60
        load printers = No
        local master = No
        lock directory = /run/samba
        lock spin time = 200
        log file = /var/log/samba/log.samba
        logging =
        log level = 0
        log nt token command =
        logon drive =
        logon home = \\%N\%U
        logon path = \\%N\%U\profile
        logon script =
        log writeable files on exit = No
        lpq cache time = 30
        lsa over netlogon = No
        machine password timeout = 604800
        mangle prefix = 1
        mangling method = hash2
        map to guest = Never
        max disk size = 0
        max log size = 5000
        max mux = 50
        max open files = 16384
        max smbd processes = 0
        max stat cache size = 512
        max ttl = 259200
        max wins ttl = 518400
        max xmit = 16644
        mdns name = netbios
        message command =
        min receivefile size = 0
        min wins ttl = 21600
        mit kdc command =
        multicast dns register = Yes
        name cache timeout = 660
        name resolve order = lmhosts wins host bcast
        nbt client socket address = 0.0.0.0
        nbt port = 137
        ncalrpc dir = /var/run/samba/ncalrpc
        netbios aliases =
        netbios name = POLIGON-LIVE
        netbios scope =
        neutralize nt4 emulation = No
        NIS homedir = No
        nmbd bind explicit broadcast = Yes
        nsupdate command = /usr/bin/nsupdate -g
        ntlm auth = ntlmv1-permitted
        nt pipe support = Yes
        ntp signd socket directory = /var/lib/samba/ntp_signd
        nt status support = Yes
        null passwords = No
        obey pam restrictions = No
        old password allowed period = 60
        oplock break wait time = 0
        os2 driver map =
        os level = 0
        pam password change = No
        panic action =
        passdb backend = tdbsam
        passdb expand explicit = No
        passwd chat = *new*password* %n\n *new*password* %n\n *changed*
        passwd chat debug = No
        passwd chat timeout = 2
        passwd program =
        password hash gpg key ids =
        password hash userPassword schemes =
        password server = *
        perfcount module =
        pid directory = /run/samba
        preferred master = No
        prefork backoff increment = 10
        prefork children = 4
        prefork maximum backoff = 120
        preload modules =
        printcap cache time = 750
        printcap name = /dev/null
        private dir = /var/lib/samba/private
        raw NTLMv2 auth = No
        read raw = Yes
        realm = MYDOMAIN
        registry shares = No
        reject md5 clients = No
        reject md5 servers = No
        remote announce =
        remote browse sync =
        rename user script =
        require strong key = Yes
        reset on zero vc = No
        restrict anonymous = 0
        rndc command = /usr/sbin/rndc
        root directory =
        rpc big endian = No
        rpc server dynamic port range =
        rpc server port = 0
        samba kcc command = /usr/sbin/samba_kcc
        security = ADS
        server max protocol = SMB3
        server min protocol = SMB2_02
        server multi channel support = No
        server role = auto
        server schannel = Yes
        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
        server signing = if_required
        server string = Samba 4.11.6-Ubuntu
        set primary group script =
        set quota command =
        share backend = classic
        show add printer wizard = No
        shutdown script =
        smb2 leases = Yes
        smb2 max credits = 8192
        smb2 max read = 8388608
        smb2 max trans = 8388608
        smb2 max write = 8388608
        smbd profiling level = off
        smb passwd file = /etc/samba/smbpasswd
        smb ports = 445 139
        socket options = TCP_NODELAY
        spn update command = /usr/sbin/samba_spnupdate
        stat cache = Yes
        state directory = /var/lib/samba
        svcctl list =
        syslog = 1
        syslog only = No
        template homedir = /home/%D/%U
        template shell = /bin/bash
        time server = No
        timestamp logs = Yes
        tls cafile = tls/ca.pem
        tls certfile = tls/cert.pem
        tls crlfile =
        tls dh params file =
        tls enabled = Yes
        tls keyfile = tls/key.pem
        tls priority = NORMAL:-VERS-SSL3.0
        tls verify peer = as_strict_as_possible
        unicode = Yes
        unix charset = UTF-8
        unix extensions = Yes
        unix password sync = No
        use mmap = Yes
        username level = 0
        username map =
        username map cache time = 0
        username map script =
        usershare allow guests = No
        usershare max shares = 100
        usershare owner only = Yes
        usershare path = /var/lib/samba/usershares
        usershare prefix allow list =
        usershare prefix deny list =
        usershare template share =
        utmp = No
        utmp directory =
        winbind cache time = 300
        winbindd socket directory = /var/run/samba/winbindd
        winbind enum groups = Yes
        winbind enum users = Yes
        winbind expand groups = 0
        winbind max clients = 200
        winbind max domain connections = 1
        winbind nested groups = Yes
        winbind normalize names = No
        winbind nss info = template
        winbind offline logon = Yes
        winbind reconnect delay = 30
        winbind refresh tickets = Yes
        winbind request timeout = 60
        winbind rpc only = No
        winbind scan trusted domains = Yes
        winbind sealed pipes = Yes
        winbind separator = \
        winbind use default domain = Yes
        winbind use krb5 enterprise principals = No
        wins hook =
        wins proxy = No
        wins server =
        wins support = No
        workgroup = MYDOMAIN
        write raw = Yes
        wtmp directory =
        idmap config * : backend = tdb
        idmap config * : range = 10000-20000
        registry:hkey_users = hku.ldb
        registry:hkey_local_machine = hklm.ldb
        kccsrv:samba_kcc = true
        access based share enum = No
        acl allow execute always = No
        acl check permissions = Yes
        acl group control = No
        acl map full control = Yes
        administrative share = No
        admin users =
        afs share = No
        aio read size = 1
        aio write behind =
        aio write size = 1
        allocation roundup size = 0
        available = Yes
        blocking locks = Yes
        block size = 1024
        browseable = Yes
        case sensitive = Auto
        check parent directory delete on close = No
        comment =
        copy =
        create mask = 0744
        csc policy = manual
        cups options =
        default case = lower
        default devmode = Yes
        delete readonly = No
        delete veto files = No
        dfree cache time = 0
        dfree command =
        directory mask = 0755
        directory name cache size = 100
        dmapi support = No
        dont descend =
        dos filemode = No
        dos filetime resolution = No
        dos filetimes = Yes
        durable handles = Yes
        ea support = Yes
        fake directory create times = No
        fake oplocks = No
        follow symlinks = Yes
        force create mode = 0000
        force directory mode = 0000
        force group =
        force printername = No
        force unknown acl user = No
        force user =
        fstype = NTFS
        guest ok = No
        guest only = No
        hide dot files = Yes
        hide files =
        hide new files timeout = 0
        hide special files = No
        hide unreadable = No
        hide unwriteable files = No
        hosts allow =
        hosts deny =
        include =
        inherit acls = No
        inherit owner = no
        inherit permissions = No
        invalid users =
        kernel oplocks = No
        kernel share modes = Yes
        level2 oplocks = Yes
        locking = Yes
        lppause command =
        lpq command =
        lpresume command =
        lprm command =
        magic output =
        magic script =
        mangled names = illegal
        mangling char = ~
        map acl inherit = No
        map archive = Yes
        map hidden = No
        map readonly = no
        map system = No
        max connections = 0
        max print jobs = 1000
        max reported print jobs = 0
        min print space = 0
        msdfs proxy =
        msdfs root = No
        msdfs shuffle referrals = No
        nt acl support = Yes
        ntvfs handler = unixuid, default
        oplocks = Yes
        path =
        posix locking = Yes
        postexec =
        preexec =
        preexec close = No
        preserve case = Yes
        printable = No
        print command =
        printer name =
        printing = bsd
        printjob username = %U
        print notify backchannel = No
        queuepause command =
        queueresume command =
        read list =
        read only = Yes
        root postexec =
        root preexec =
        root preexec close = No
        short preserve case = Yes
        smbd async dosmode = No
        smbd getinfo ask sharemode = Yes
        smbd max async dosmode = 0
        smbd search ask sharemode = Yes
        smb encrypt = default
        spotlight = No
        store dos attributes = Yes
        strict allocate = No
        strict locking = Auto
        strict rename = No
        strict sync = Yes
        sync always = No
        use client driver = No
        use sendfile = No
        valid users =
        veto files =
        veto oplock files =
        vfs objects =
        volume =
        wide links = No
        write cache size = 0
        write list =

[www]
        comment = www
        guest ok = Yes
        path = /var/www/html
        read only = No
        valid users = user1 user2 user3

[point]
        comment = test
        create mask = 0777
        guest ok = Yes
        inherit owner = windows and unix
        inherit permissions = Yes
        map acl inherit = Yes
        path = /mnt/sda3/point
        read only = No
        valid users = user1 user2 user3

Установить на них права из Windows.
Когда так пытался сделать - Windows писала что ошибка доступа.

Мусор.
Не знаю, это ли помогло - но убрал эти строки из конфига, а также, в правах файла, который нельзя удалять поставил chmod 444 и chown root:пользователи домена (с помощью midnight commander). После этого его удалить не получилось (но переименовать всё так же можно). Но может, что ещё путного по конфигу подскажете...

Оффлайн AlexDem

  • Активист
  • *
  • Сообщений: 696
    • Просмотр профиля
Re: Samba: Права доступа к конкретным файлам
« Ответ #4 : 16 Января 2021, 11:02:33 »
После этого его удалить не получилось (но переименовать всё так же можно). Но может, что ещё путного по конфигу подскажете...
А это ключевая задача, чтобы хранить read-only файлы в той же папке, что остальные? Если нет, то все просто:

[share]
comment = Ubuntu Share
path = /your/samba/share
browsable = yes
guest ok = yes
read only = yes
write list = user1 user2 user3
create mask = 0755
Т.е доступ на изменение будут только у 3-х юзеров: user1 user2 user3

Оффлайн Prtoy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: Samba: Права доступа к конкретным файлам
« Ответ #5 : 16 Января 2021, 12:33:12 »
А это ключевая задача, чтобы хранить read-only файлы в той же папке, что остальные?
Да, именно так.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: Samba: Права доступа к конкретным файлам
« Ответ #6 : 17 Января 2021, 23:41:35 »
Prtoy,

vfs objects = acl_xattr
Хотя должно работать и без этого, если я правильно помню.
Логиниться надо с правами администратора.

AlexDem, все *mask - мусор и пережиток прошлого. Используйте ACL уже.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Prtoy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: Samba: Права доступа к конкретным файлам
« Ответ #7 : 18 Января 2021, 12:09:51 »
Хотя должно работать и без этого, если я правильно помню.
Не работало без этого. Добавил - стало возможно ставить права из винды. Также, установил и ACL тоже. Спасибо!

 

Страница сгенерирована за 0.059 секунд. Запросов: 25.