/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Arggghhhh... linux
Fra : Sven Esbjerg


Dato : 04-07-01 22:41


Jeg har en bruger som af diverse årsager skal have skiftet UID. Jeg
tænker intet problem. Jeg skifter UID i NIS basen og laver følgende på
alle maskinerne hvor han har været logget ind:
# cd /
# chown $NUID `find . -user $OUID`

Dette virker fint under Solaris, *BSD og hvad ved jeg, men på mine
Debian 2.2 maskiner har jeg et problem. Enten sker der ikke noget
(ingen fejl udover permission denied på visse filer) eller jeg får:

[root@chef]# chown 1014 `find . -user 1001`
chown: invalid option -- 0
Try `chown --help' for more information.

???

Kører jeg find alene virker det fint. Kører jeg chown med et par
linier af resultatet fra find virker det fint. Bruger jeg en anden
kommando i forbindelse med `find xxx` (fx. chmod) virker det fint. Nu
kunne jeg godt tænke mig at høre om der er en der kan komme med en god
logisk forklaring på hvorfor det går galt på Linux boxen med lige
præcis chown?


For de interesserede:
[root@chef]# chown --version
chown (GNU fileutils) 4.0l

[root@chef]# uname -an
Linux chef 2.4.5 #1 Fri Jun 29 17:55:16 CEST 2001 i586 unknown

[root@chef]# cat /etc/debian_version
2.2




Sven

 
 
Adam Sjøgren (04-07-2001)
Kommentar
Fra : Adam Sjøgren


Dato : 04-07-01 23:03

On 04 Jul 2001 23:40:53 +0200, Sven Esbjerg wrote:

> [root@chef]# chown 1014 `find . -user 1001` chown: invalid option --
> 0 Try `chown --help' for more information.

> ???

> Kører jeg find alene virker det fint. Kører jeg chown med et par
> linier af resultatet fra find virker det fint.

Hvad med at finde ud af hvilken fil det er det går galt med? Måske med
noget a la:

$ for f in `find ./ -user 1001`; do echo $f; chown 1014 $f; done

?

Mvh.

--
"Ok, so we didn't learn any big lesson. Sue me." Adam Sjøgren
"Live and don't learn, that's us." asjo@koldfront.dk

Sven Esbjerg (04-07-2001)
Kommentar
Fra : Sven Esbjerg


Dato : 04-07-01 23:24

asjo@koldfront.dk (Adam Sjøgren) writes:

> Hvad med at finde ud af hvilken fil det er det går galt med? Måske med
> noget a la:
> $ for f in `find ./ -user 1001`; do echo $f; chown 1014 $f; done

Denne linie gør ligesom under *BSD brokker sig over de filer der har
mellemrum i navnet som selfølgelig ikke kan komme med. GNU chown dør
bare...

Jeg har løst opgaven, men jeg kunne stadig godt lide at vide om der er
nogen der ved hvorfor GNU chown skal være lidt mærkelig.

--
Sven

Niels Svennekjær (06-07-2001)
Kommentar
Fra : Niels Svennekjær


Dato : 06-07-01 22:16

Jeg har på fornemmelsen at der måeke er en fil der hedder -0, og det
er det der giver problemer, så prøv

"find . -user $OUID -exec chown '-- ${NUID}' {} \; " ?

(evt ${NUID}.${GUID}, hvis du også skal have ændret gruppen)

eller "chown -- $NUID `find . -user $OUID` "

- Niels


Sven Esbjerg wrote:

> Jeg har en bruger som af diverse årsager skal have skiftet UID. Jeg
> tænker intet problem. Jeg skifter UID i NIS basen og laver følgende på
> alle maskinerne hvor han har været logget ind:
> # cd /
> # chown $NUID `find . -user $OUID`
>
> Dette virker fint under Solaris, *BSD og hvad ved jeg, men på mine
> Debian 2.2 maskiner har jeg et problem. Enten sker der ikke noget
> (ingen fejl udover permission denied på visse filer) eller jeg får:
>
> [root@chef]# chown 1014 `find . -user 1001`
> chown: invalid option -- 0
> Try `chown --help' for more information.
>
> ???
>
> Kører jeg find alene virker det fint. Kører jeg chown med et par
> linier af resultatet fra find virker det fint. Bruger jeg en anden
> kommando i forbindelse med `find xxx` (fx. chmod) virker det fint. Nu
> kunne jeg godt tænke mig at høre om der er en der kan komme med en god
> logisk forklaring på hvorfor det går galt på Linux boxen med lige
> præcis chown?
>
> For de interesserede:
> [root@chef]# chown --version
> chown (GNU fileutils) 4.0l
>
> [root@chef]# uname -an
> Linux chef 2.4.5 #1 Fri Jun 29 17:55:16 CEST 2001 i586 unknown
>
> [root@chef]# cat /etc/debian_version
> 2.2
>
> Sven


Sven Esbjerg (09-07-2001)
Kommentar
Fra : Sven Esbjerg


Dato : 09-07-01 14:05

Niels Svennekjær <linux@post.tele.dk> writes:

> Jeg har på fornemmelsen at der måeke er en fil der hedder -0, og det
> er det der giver problemer, så prøv
>
> "find . -user $OUID -exec chown '-- ${NUID}' {} \; " ?

Try `chown --help' for more information.
chown: unrecognized option `-- 1014'

> eller "chown -- $NUID `find . -user $OUID` "

En masse no such file or directory.


Problemet ligger i at GNU find og chown sammen ikke kan håndtere
filer med mellemrum i navnene. Hver der er et mellemrum kommer det til
se ud som om at det er en ny fil. Det kan vist diskuteres hvorvidt det
er en fejl at GNU værktøjerne ikke kan håndtere dette.

Hvor om alt er så dør GNU værktøjerne uden at lave noget. De samme
vækrtøjer under BSD/Solaris brokker sig men udfører kommandoerne så
langt som det er muligt. Ydermere brokker de sig med sigende
fejlmeddelser.

Nå sådan er det bare 8<

/Sven

Adam Sjøgren (09-07-2001)
Kommentar
Fra : Adam Sjøgren


Dato : 09-07-01 23:42

On 09 Jul 2001 15:04:39 +0200, Sven Esbjerg wrote:

> Hvor om alt er så dør GNU værktøjerne uden at lave noget. De samme
> vækrtøjer under BSD/Solaris brokker sig men udfører kommandoerne så
> langt som det er muligt. Ydermere brokker de sig med sigende
> fejlmeddelser.

> Nå sådan er det bare 8<

Nåja, indtil du sætter dig ned og finder kildekoden frem, fixer
problemerne og sender en patch til vedligeholderne...


,

--
"Sometimes I think the surest sign that intelligent Adam Sjøgren
life exists elsewhere in the universe is that none asjo@koldfront.dk
of it has tried to contact us."

Rasmus Bøg Hansen (09-07-2001)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 09-07-01 16:06



Sven Esbjerg (09-07-2001)
Kommentar
Fra : Sven Esbjerg


Dato : 09-07-01 17:26

Rasmus Bøg Hansen <moffespam@amagerkollegiet.dk> writes:

> > >
> > > "find . -user $OUID -exec chown '-- ${NUID}' {} \; " ?
> >
> > Try `chown --help' for more information.
> > chown: unrecognized option `-- 1014'
>
> Skal det ikke være
>
> find . -user $OUID -exec chown -- ${NUID} {} \;

Dooouugggh...

Selfølgelig jo.

--
Sven

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408887
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste