Το υποσύστημα για εφαρμογές που βασίζονται στο UNIX (SUA) παρέχει ένα υποσύστημα συμβατό με περιβάλλον εργασίας φορητού λειτουργικού συστήματος (συμβατό με POSIX), το οποίο εκτελεί κελύφη UNIX, βοηθητικά προγράμματα και τοπικές εφαρμογές παράλληλα με τις εφαρμογές των Windows® της Microsoft®. Το θέμα αυτό περιγράφει κάποια από τα ζητήματα εργασίας για χρήστες που χρειάζονται λειτουργικό σύστημα συμβατό με POSIX.
Συμβατότητα κελύφους POSIX
Το κέλυφος SUA Korn ακολουθεί την κλασική συμπεριφορά κελύφους Korn, η οποία είναι σχεδόν πανομοιότυπη με τη συμπεριφορά POSIX. Εάν χρειάζεστε αυστηρή συμβατότητα με POSIX, στοιχείο το οποίο είναι απαιτούμενο σε κάποια περιβάλλοντα εργασίας, ανατρέξτε στις διαφορές μεταξύ κελύφους Korn και POSIX στην τεκμηρίωση του ksh(1) στα αρχεία Βοήθειας που υπάρχουν στο πακέτο λήψης βοηθητικών προγραμμάτων και κιτ ανάπτυξης λογισμικού (SDK) για υποσύστημα για εφαρμογές που βασίζονται στο UNIX.
Για πλήρη συμβατότητα με POSIX.2 από το κέλυφος Korn, πρέπει να εκτελέσετε το κέλυφος Korn σε κατάσταση λειτουργίας POSIX. Για να εκτελέσετε το κέλυφος Korn σε κατάσταση λειτουργίας POSIX, κάντε ένα από τα παρακάτω:
-
Ανοίξτε το κέλυφος Korn με την επιλογή -o posix.
-
Εκτελέστε την εντολή set -o posix μέσα από το κέλυφος.
-
Ορίστε την παράμετρο κελύφους POSIXLY_CORRECT.
Η συμβατότητα με POSIX δεν υποστηρίζεται στο κέλυφος C. Σε αντίθεση με το κέλυφος Korn, το κέλυφος C δεν διαθέτει επιλογές εντολής κατάστασης λειτουργίας POSIX.
Διέλευση ελέγχου δικαιωμάτων καταλόγου
Από προεπιλογή, οι χρήστες των Windows έχουν δικαιώματα μετακίνησης σε ένα δέντρο καταλόγου, αν και μπορεί να μην έχουν δικαιώματα πρόσβασης σε κάθε κατάλογο στη διαδρομή. Στα συστήματα POSIX, η πρόσβαση σε έναν κατάλογο είναι δυνατή μόνο εάν έχετε άδεια πρόσβασης κάθε καταλόγου στη διαδρομή προς τον κατάλογο. Αυτή η συμπεριφορά POSIX είναι γνωστή ως διέλευση ελέγχου. Για παράδειγμα, εάν δεν έχετε δικαιώματα πρόσβασης ενός καταλόγου, δεν μπορείτε να αλλάξετε τον τρέχοντα κατάλογο σε οποιονδήποτε από τους υποκαταλόγους του, ακόμη κι αν έχετε δικαιώματα πρόσβασης των υποκαταλόγων. Από προεπιλογή, στα Windows μπορείτε να αλλάξετε τον τρέχοντα κατάλογο σε οποιουσδήποτε υποκαταλόγους για τους οποίους έχετε δικαιώματα.
Στα Windows υπάρχει ειδικό δικαίωμα που ονομάζεται Αλλαγή φακέλου/Εκτέλεση αρχείου, το οποίο μπορείτε να ορίσετε για έναν χρήστη ή ομάδα. Μπορείτε να ρυθμίσετε αυτά τα δικαιώματα ώστε να επιτρέπετε ή να αρνείστε την κίνηση στο δέντρο ενός καταλόγου. Το δικαίωμα αλλαγής φακέλου ενεργοποιείται μόνο όταν στην ομάδα ή το χρήστη δεν έχει εκχωρηθεί δικαίωμα χρήστη Παράκαμψη διέλευσης ελέγχου στο συμπληρωματικό πρόγραμμα Πολιτικής ομάδας. Στα Windows 2000 της Microsoft, από προεπιλογή, η ομάδα "Everyone" έχει το δικαίωμα χρήστη Παράκαμψη διέλευσης ελέγχου. Στα λειτουργικά συστήματα Windows Server® 2008 R2, Windows® 7, Windows Server® 2008, Windows Vista®, Windows Server 2003 και Windows XP, οι ομάδες Administrators, Backup Operators, Everyone, Power Users και Users έχουν αυτό το δικαίωμα. Για αυστηρή συμβατότητα με τα πρότυπα του POSIX, καταργήστε την παράκαμψη διέλευσης ελέγχου από όλους τους χρήστες και ομάδες, εκτός από την ομάδα Backup Operators. Για συμβατότητα με δικαιώματα που εκχωρούνται στον ριζικό χρήστη σε πολλές άλλες υλοποιήσεις UNIX, καταργήστε το δικαίωμα χρήστη παράκαμψης διέλευσης ελέγχου από όλους τους χρήστες, εκτός από τις ομάδες Administrators και Backup Operators.
Απόκλιση συμπεριφοράς διέλευσης ελέγχου για τις εντολές su και setuid
Οι ριζικοί χρήστες που χρησιμοποιούν την εντολή su για εκτέλεση ως διαφορετικοί χρήστες και οι χρήστες που χρησιμοποιούν διεργασίες setuid (και οι διεργασίες αυτές περιλαμβάνουν κλήσεις που σχετίζονται με την εντολή setuid), αποκλίνουν από την προεπιλεγμένη συμπεριφορά που περιγράφεται παραπάνω διατηρώντας κάποια δικαιώματα διέλευσης καταλόγου.
Η κατάργηση του δικαιώματος Παράκαμψη διέλευσης ελέγχου από τους λογαριασμούς χρήστη οδηγεί σε συμπεριφορά που συμμορφώνεται με τις διαδικασίες POSIX. Ωστόσο, όταν ένας ριζικός χρήστης προσπαθεί να εκτελέσει την εντολή su σε οποιονδήποτε άλλο χρήστη χωρίς να παράσχει κωδικό πρόσβασης, η περίοδος που ακολουθεί δεν έχει την συμπεριφορά που περιγράφεται παραπάνω. Οι διεργασίες που ξεκινούν αφού ένας ριζικός χρήστης εκτελέσει την εντολή su χωρίς να παράσχει κωδικό πρόσβασης μπορούν να προσπελάσουν και να μετακινηθούν σε ένα δέντρο καταλόγου, παρόλο που ενδέχεται να μην έχουν δικαιώματα για πρόσβαση σε κάθε κατάλογο της διαδρομής.
Οι διεργασίες Setuid και οι διεργασίες που καλούν τις εντολές setuid, seteuid ή setreuid, επιδεικνύουν επίσης την ίδια συμπεριφορά. Μετά την κατάργηση του δικαιώματος Παράκαμψη διέλευσης ελέγχου από το λογαριασμό του χρήστη που εκτελεί αυτές τις διεργασίες, οι διεργασίες μπορούν να προχωρήσουν σε ένα δέντρο καταλόγου, παρόλο που ενδέχεται να μην έχουν δικαιώματα πρόσβασης σε κάθε κατάλογο της διαδρομής.