OS X 10.8.3 permissões de conta de usuário root corrompidas

2

Estou correndo para um problema de permissões de root no OS X 10.8.3. Isso está se manifestando de várias formas.

Ficou claro depois de tentar executar uma atualização automática do MacPorts. O seguinte problema link destaca o erro visto.

Os utilitários de linha de comando XCode e XCode são instalados e o usuário root está ativado.

O principal é que eu não posso fazer alterações como root, pois root não parece ter as permissões certas. Eu tentei chown'ing e chmod'ing qualquer coisa em / etc e / etc / local, mas eu sempre recebo "Operação não permitida"

Eu segui todas as resoluções normais. Utilitário de Disco - > Reparar Permissões, Ativar / Desativar o usuário root, alterar o usuário root p / w, ligar e desligar a máquina.

bash-3.2$ chmod 775 base.tar
chmod: Unable to change file mode on base.tar: Operation not permitted
bash-3.2$ ls -la
total 129744
drwxr-xr-x  10 root  admin       340  8 Apr 15:17 .
drwxr-xr-x   3 root  admin       102  8 Apr 12:38 ..
-rw-r--r--   1 root  admin   9453803  8 Apr 12:30 PortIndex
-rw-r--r--   1 root  admin       512  8 Apr 12:31 PortIndex.rmd160
drwxr-xr-x  24 root  wheel       816 31 Jan 17:30 base
-rw-r--r--   1 root  admin   3594240  8 Apr 15:01 base.tar
-rw-r--r--   1 root  admin       512  8 Apr 15:01 base.tar.rmd160
drwxr-xr-x  51 root  wheel      1734  8 Apr 15:17 ports
-rw-r--r--   1 root  admin  53360640  8 Apr 15:01 ports.tar
-rw-r--r--   1 root  admin       512  8 Apr 15:01 ports.tar.rmd160
bash-3.2$ whoami
root
bash-3.2$ 

Nesta fase, estou pensando em reinstalar, mas prefiro corrigir isso em vez de começar novamente.

A saída do id é:

uid=504(root) 
gid=0(wheel) 
groups=0(wheel),
402(com.apple.sharepoint.group.1),
401(com.apple.access_screensharing),
1(daemon),
2(kmem),
3(sys),
4(tty),
5(operator),
8(procview),
9(procmod),
12(everyone),
20(staff),
29(certusers),
33(_appstore),
61(localaccounts),
504(admin),
98(_lpadmin),
100(_lpoperator),
204(_developer),
403(com.apple.sharepoint.group.2)

saída de dscl. leia '/ Users / root'

bash-3.2$ dscl . read '/Users/root'
AppleMetaNodeLocation: /Local/Default
GeneratedUID: FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000
NFSHomeDirectory: /Users/root
Password: ********
PasswordPolicyOptions:
 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>failedLoginCount</key>
    <integer>0</integer>
    <key>failedLoginTimestamp</key>
    <date>2001-01-01T00:00:00Z</date>
    <key>lastLoginTimestamp</key>
    <date>2001-01-01T00:00:00Z</date>
    <key>passwordLastSetTime</key>
    <date>2013-05-27T07:39:18Z</date>
</dict>
</plist>

PrimaryGroupID: 0
RealName: root
RecordName:
 root
 BUILTIN\Local System
RecordType: dsRecTypeStandard:Users
SMBSID: S-1-5-18
UniqueID: 504
UserShell: /bin/bash
    
por Keith Lynch 27.05.2013 / 10:08

1 resposta

2

De alguma forma, você criou outro usuário chamado root que não tem permissões de root (que podem ter substituído a conta root padrão) ou alterou o ID do usuário do root. root deve ter UID 0. Talvez as instruções para Ativar / Desativar o usuário root, alterar o usuário root p / w que você seguiu estejam incorretas.

Você pode tentar especificar o UID 0 explicitamente executando sudo da seguinte maneira:

sudo -u '#0' <command>

dscl é o utilitário de linha de comando para gerenciar contas de usuário (entre outras coisas). A saída de dscl . read '/Users/root' deve ser semelhante a esta por padrão:

AppleMetaNodeLocation: /Local/Default
GeneratedUID: FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000
NFSHomeDirectory: /var/root
Password: *
PrimaryGroupID: 0
RealName:
 System Administrator
RecordName: root
RecordType: dsRecTypeStandard:Users
SMBSID: S-1-5-18
UniqueID: 0
UserShell: /bin/sh

Você pode tentar redefinir tudo executando dscl . change '/Users/root' 'UniqueID' '504' '0' e esperando que sudo funcione para isso. Isso poderia quebrar ainda mais embora - eu só testei com a chave UserShell .

    
por 27.05.2013 / 12:55